课堂知识

今天课堂上老师让我们检测下面程序的正确性:

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;
}
这堂课让我深刻认识的编程的严谨性;并且考虑的全面性 ;不能按照自己的想法来怎么着 因为程序是给别人使用的..
posted @ 2014-03-09 22:56  超/aiq越  阅读(151)  评论(0编辑  收藏  举报