最近在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢
1.试编写一个模板函数,它要求用户输入一个非负数,并负责验证用户所输入的数是否真的大于或等于 0,如果不是,它将告诉用户该输入非法,需要重新输入一个数。在函数非成功退出之前,应给用户三次机会。如果输入成功,函数应当把所输入的数作为引用参数返回。输入成功时,函数应返回 true,否则返回false 。上机测试该函数。
// // main.cpp // Test_01 // // Created by cc on 14-3-30. // Copyright (c) 2014年 cc. All rights reserved. // /* 1. 试编写一个模板函数,它要求用户输入一个非负数,并负责验证用户所输入的数是否真的大于或等于 0,如果不是,它将告诉用户该输入非法,需要重新输入一个数。在函数非成功退出之前,应给用户三次机会。如果输入成功,函数应当把所输入的数作为引用参数返回。 输入成功时,函数应返回 true, 否则返回false 。上机测试该函数。 */ #include <iostream> using namespace std; //声明 template <typename T> bool checkInput(T& t); int main(int argc, const char * argv[]) { int ref = 0; int i = 0; bool isPositive = false; for (; i < 3; i++) { isPositive = checkInput(ref); if (isPositive) { cout << "输入成功,您输入的正数为:" << ref << endl; break; } else { continue; } } return 0; } //定义 template <typename T> bool checkInput(T& ref) { int inputVal; cin >> inputVal; if (inputVal >= 0) { ref = inputVal; return true; } else { cerr << "您输入的数是负数,非法!" << endl; return false; } }
输入正确打印结果:
本文由CC原创总结,如需转载请注明出处:http://blog.csdn.net/oktears/article/details/22593499
《数据结构、算法与应用》第一章习题1.1,布布扣,bubuko.com
原文:http://blog.csdn.net/oktears/article/details/22593499