zoukankan      html  css  js  c++  java
  • 求一个数组中的最大整数

    首先,分析题目,整数包括0,正整数,和负整数,所以要对所处理的数据做一个全面的测试。

    测试的内容包括:

    ①局部变量类型是否正确

    ②是否初始化

    ③是否存在错误的初始值或错误的默认值

    ④运算是否正确

    ⑤逻辑是否正确

    ⑥是否存在死循环

    ⑦对错误条件的处理

    老师所给的函数如下:

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

    观察,max没有赋初值,可能会对结果产生影响;

    再者没有对异常进行处理,也就是当length长度为空的时候,也就表示list数组的为空;

    还有就是在做比较的时候,要判读比较的次数,在length-1这也有问题。

    为了是程序能够具备更加完整的性能,改进后的代码如下

    #include<stdio.h>
    #include<stdlib.h>
    int Largest(int list[],int length)
    {
        if(length==0)
        {
            printf("数组长度不能为空!
    ");
            return 0;
        }
        else
        {
            int i;
            int max=list[0];
            for(i=0;i<length;i++)
            {
                if(list[i]>max)
                {
                    max=list[i];
                }
            }
            return max;
        }
    }
    int main()
    {
        int *a;
        int max;
        int i;
        int b;
        int n;
        a=(int *)malloc(sizeof(int)*n);
        printf("请输入数组的个数n:
    ",n);
        scanf("%d",&n);
        if(n>0)
        {
            printf("输入%d个数
    ",n);
            for(i=0;i<n;i++)
            {
                scanf("%d",&b);
                a[i]=b;
            }
            max=Largest(a,n);
            printf("max=%d
    ",max);
        }
        else
        {
            Largest(a,n);
        }
            return 0;
    }


    对以上的程序解释:

    ①本题目的目的是测试Largest函数,使其具有更好的实用性,所以在对此函数做完善是代码加在Largset里,也就是length=0时的异常处理,还有赋初值的问题。

    ②因为length是可变的,所以对于数组的申请应该是动态的。

    运行结果如下:

  • 相关阅读:
    Vue内置指令
    Vue计算属性
    Ubuntu下编译Bilibili/ijkplayer
    自毁程序
    Android最大可运行内存
    Android ListView onItemClick Not Work
    Java/Android 二进制数据与String互转
    JAVA/Android Map与String的转换方法
    java中打印变量地址
    Win7 关闭Window update
  • 原文地址:https://www.cnblogs.com/wangbingru/p/3578572.html
Copyright © 2011-2022 走看看