class 3 求数组中的最大值(单元测试)
1.问题引出:
int Largest(int list[], int length) { int i,max; for(i = 0; i < (length – 1); i ++ ) { if(list[i] > max) { max=list[i]; } } return max; }
由此段程序编写一个正确的程序实现求数组的最大值。
#include <iostream> using namespace std; int Largest(int list[],int length) { int i,max = list[0]; for(i = 0; i < length ; i++) { ; if (list[i] > max) { max = list[i]; } } cout << max << endl; return max; } void main() { int arr[5] = {-1,0,8,7,4}; Largest(arr,5); }
测试时出现的错误有:
i < (length – 1)---i < length;
max没有赋初值,---max = list[0];
修改程序时测试时的数据有:1,2,3,4,5----结果4
分析以后可以看出length处的错误;
0,-4,3,2,1----结果1
可以得出max没有赋初值...
心得体会:一个小测试用例就可以看出一个程序的好坏对错,所以一定要对测试十分重视才行。另外老师说的实现占20%,测试占80%这个行业规范也要记住;关于负数、数值范围、数值类型、空值等一系列的参数或其他条件也要时刻警醒。