最近在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢

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