最近在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢
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
douban.com/note/356754274/
douban.com/note/356754286/
douban.com/note/356754294/
douban.com/note/356754300/
douban.com/note/356754317/
douban.com/note/356754322/
douban.com/note/356754343/
douban.com/note/356754361/
douban.com/note/356754406/
douban.com/note/356754410/
douban.com/note/356754426/
douban.com/note/356754439/
douban.com/note/356754442/
douban.com/note/356754452/
douban.com/note/356754461/
douban.com/note/356754473/
douban.com/note/356754482/
douban.com/note/356754519/
douban.com/note/356754632/
douban.com/note/356754645/
douban.com/note/356754651/
douban.com/note/356754699/
douban.com/note/356754713/
douban.com/note/356754739/
douban.com/note/356754753/
douban.com/note/356754769/
douban.com/note/356754790/
douban.com/note/356754811/
douban.com/note/356754865/
douban.com/note/356754871/
douban.com/note/356754898/
douban.com/note/356754909/
douban.com/note/356754931/
douban.com/note/356754946/
douban.com/note/356754952/
douban.com/note/356754985/
douban.com/note/356755005/
douban.com/note/356755028/
douban.com/note/356755143/
douban.com/note/356755154/
douban.com/note/356755168/
douban.com/note/356755176/
douban.com/note/356755185/
douban.com/note/356755190/
douban.com/note/356755206/
douban.com/note/356755211/
douban.com/note/356755235/
douban.com/note/356755264/
douban.com/note/356755303/
douban.com/note/356755319/
douban.com/note/356755332/
douban.com/note/356755354/
douban.com/note/356755373/
douban.com/note/356755380/
douban.com/note/356755408/
douban.com/note/356755424/
douban.com/note/356755438/
douban.com/note/356755452/
douban.com/note/356755525/
douban.com/note/356755538/
douban.com/note/356755558/
douban.com/note/356755565/
douban.com/note/356755585/
douban.com/note/356755601/
douban.com/note/356755633/
douban.com/note/356755654/
douban.com/note/356755662/
douban.com/note/356755689/
douban.com/note/356755723/
douban.com/note/356755739/
douban.com/note/356755746/
douban.com/note/356755767/
douban.com/note/356755783/
douban.com/note/356755800/
douban.com/note/356755815/
douban.com/note/356755835/
douban.com/note/356755851/
douban.com/note/356755863/
douban.com/note/356755946/
douban.com/note/356755954/
douban.com/note/356755972/
douban.com/note/356755987/
douban.com/note/356756008/
douban.com/note/356756018/
douban.com/note/356756033/
douban.com/note/356756059/
douban.com/note/356756072/
douban.com/note/356756085/
douban.com/note/356756173/
douban.com/note/356756191/
douban.com/note/356756202/
douban.com/note/356756239/
douban.com/note/356756241/
douban.com/note/356756253/
douban.com/note/356756265/
douban.com/note/356756292/
douban.com/note/356756317/
douban.com/note/356756327/
douban.com/note/356756471/
douban.com/note/356756492/
douban.com/note/356756519/
douban.com/note/356756529/
douban.com/note/356756545/
douban.com/note/356756561/
douban.com/note/356756573/
douban.com/note/356756596/
douban.com/note/356756610/