max函数很简单,但是要考虑的因素有很多
下边这段程序:
int lar(int list[],int length) { int i,max; max=list[0]; for(i=1;i<length-1;i++) { if(list[i]>max) max=list[i]; } return max; }
这段程序在测试的时候会有下边这几种情况:
1、
2、
3、
4、
5、
上述情况结果有错误,由于测试出现的情况不可预知,因此要尽量多的考虑到各种情况,不能想当然
第一种:循环的条件搞错了:将length-1改为length
第二种:数组为空的情况,本来应该提示错误,加一个if。。。else即可
第三种:输入为float型,没有检测是否输入合法;
第四种:与预期结果相同;
第五种:同第一种。
错误改正:
#include <iostream> #include <fstream> #include <string> #include <typeinfo> using namespace std; int lar(int list[],int length) { int i,max; max=list[0]; for(i=1;i<length;i++) { if(list[i]>max) max=list[i]; } if(max==-858993460) { cout<<"输入错误"<<endl; return 0; } else return max; } void main() { int n,a[10]; int flag=0; cout<<"数组的长度:"; cin>>n; cout<<"数组内容:"; for(int i=0;i<n;i++) { cin>>a[i]; } cout<<endl<<"最大的数是:"<<lar(a,n)<<endl; }