今天课堂上老师让我们检测下面程序的正确性:
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;
}
很明显的是for循环语句中的i<length-1明显不对,然后max没有初始值系统默认的是0;
当然如果全是正整数 没有问题;但是如果全是负数。。。那么max就是0了
所以 负值 max=list[1];这样就可以了 然后就没有什么大的问题了;然后老师让我们输入测试数据 并且记录;
淡然按照我们的想法 输入各种数据得到的结果都是一样的;然后老师就问我们:
1. 万一输入的不是整数怎么办
2.万一输入的是空数组怎么办
这下我蛋疼了 ;完全没有考虑啊 ....让老师这么一说还真是这么一回事;
经过修改后的程序如下:
int Largest(int list[],int length)
{
if(list==null)
{
return 0;//数组不能为0
}
else if(length==0)
{
return 0;//长度不能为0
}
int i,max;
max=list[0];
for(i=0;i<=length-1;i++)
{
if(list[i]>max)
{
max=list[i];
}
}
return max;
}
这堂课让我深刻认识的编程的严谨性;并且考虑的全面性 ;不能按照自己的想法来怎么着 因为程序是给别人使用的..