• 课堂练习--单元测试


    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.总结

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

  • 相关阅读:
    多线程(一) NSThread
    Swift 烧脑体操(一)
    Swift 烧脑体操(二)
    UINavigationController使用的注意事项
    更多请查看我的文章
    本地通知
    网络编程(二)NSURLSessionConfiguration
    A
    51Nod 1116 K进制下的大数(暴力枚举)
    51Nod 1065 最小正子段和
  • 原文地址:https://www.cnblogs.com/gting/p/4374932.html
Copyright © 2020-2023  润新知