zoukankan      html  css  js  c++  java
  • 编写一个程序,求出数组中的最大值

    在上课的时候,老师给了一个功能模块,让我们进行测试,程序模块如下:

    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;
    }

    测试的内容大致如下:

    如果数组中有两个同样大小的最大值会如何?

    如果数组中只有一个元素会如何?

    如果数组中的元素都为负数怎么样?

    如果数组为空(长度为零),那会如何?

    在编写的过程中,首先会发现数组中少了一个元素,那是因为在循环时length写成了length-1,而且max没有初始化,如果初始化为0,那么都是负数时结果为0,这个结果是错误的,原因在于负数都比0小,解决方法就是max初始化为数组第一个元素的值。并且在测试时,针对数组为空抛出异常,进行处理。

    下面是我写的测试这个模块的程序:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int Largest(int list[],int length)
    {
        int i;
        int max;
        max=list[0];
        if(list==NULL||length==0)
        { 
            printf("数组元素不能为空,请重新输入!\n");
            return 0;
        }
        else
        {
            for(i=0;i<length;i++)
            {
                if(list[i]>max)
                {
                    max=list[i];
                }
            }
            return max;
        }
    }
    int main()
    {
        int max;
        int i;
        int n;
        int *a;
        char ch;
        a=(int*)malloc(n*sizeof(int));
    in:    printf("请输入数组的个数:\n");
        scanf("%d",&n);    
        if(n>0)
        {
            printf("请输入数组元素:\n");
            for(i=0;i<n;i++)
            {
                 scanf("%d",&a[i]);
            }
            max=Largest(a,n);
            printf("数组元素的最大值是:%d\n",max);
        }
        else
        {
            printf("数组不能为空,请重新输入!\n");
            goto in;        
        }
        return 0;
    }

    测试结果如下:

    通过这次的测试使我明白了,就算是你认为不会发生的问题,也需要考虑它如果发生了,该如何处理,就比如数组为空的问题,所以在以后的编程中考虑问题一定要全面。

  • 相关阅读:
    14_java之变量|参数|返回值|修饰符
    NYOJ 202 红黑树 (二叉树)
    NYOJ 138 找球号(二) (哈希)
    NYOJ 136 等式 (哈希)
    NYOJ 133 子序列 (离散化)
    NYOJ 129 树的判定 (并查集)
    NYOJ 117 求逆序数 (树状数组)
    NYOJ 93 汉诺塔 (数学)
    HDU 2050 折线分割平面 (数学)
    天梯赛L2-008 最长对称子串 (字符串处理)
  • 原文地址:https://www.cnblogs.com/lixialei/p/3578781.html
Copyright © 2011-2022 走看看