首页 > 技术文章 > 课堂练习--单元测试

gting 2015-03-28 22:12 原文

1.程序代码

//郭婷 20132916 信1305 2015/3/27
#include<iostream>
using namespace std;

int Largest(int list[], int length)
{
    int i, max;
    max = list[0];
    for (i = 0; i < length ; i++)
    {
        if (list[i]>max)
        {
            max = list[i];
        }
    }
    return max;
}

void main()
{
    int list[5],length;
    int i;
    cin >> length;
    for (i = 0; i < length; i++)
    {
        cin >> list[i];
    }                
    cout << Largest(list, length);
}                                    

2.错误查找

max变量要初始化,否则计算机会根据之前的存储情况赋值,或许导致结果错误。

i<length,如果是i<(length-1),那么最后一个数将不能被查到。

3.测试结果

全是正数

全是负数

有正有负

 

最大值重复

如果数组长度为0

4.出现的问题

由上面的测试结果看,当数组长度为0时,结果会出现问题。

5.解决方案 

如果用户输入的数组长度为0,就返回0。

6.修改后的源代码

//郭婷 20132916 信1305 2015/3/27
#include<iostream>
using namespace std;

int Largest(int list[], int length)
{
    int i, max;
    max = list[0];
    if (length == 0 || list == NULL)
    {
        return 0;
    }
    for (i = 0; i < length ; i++)
    {
        if (list[i]>max)
        {
            max = list[i];
        }
    }
    return max;
}

void main()
{
    int list[5],length;
    int i;
    cin >> length;
    for (i = 0; i < length; i++)
    {
        cin >> list[i];
    }                
    cout << Largest(list, length);
}                                    

6.总结

在之前如果写这个程序,我一定不会考虑到如果数组的长度为零的情况,在学完这节课,测试了这个程序后,了解了程序在编写过程中要考虑各种情况,并且要针对出现的问题做出相应的解决方案。

推荐阅读