首页 > 用户发贴区 > 编程问题提问区 > 请问这段代码有什么问题?
2009
08-19

请问这段代码有什么问题?

#include<stdio.h>
void main()
{
    int mintomax(int array[5]);
    int a[5];
    int i;
    for(i=1;i<=5;i++)
    {
        scanf(“%d”,&a[i]);
    }
    printf(“%d”,mintomax(a[5]));
    getch();
}
int mintomax(int array[5])
{
    int i,z,t;
    z=array[1];
    for(i=2;i<=5;i++)
    {
        if(z>array[i])
        {
            t=z;z=array[i];array[i]=t;
        }
    }
    return(z);
}


这段代码是输入5个数字  然后输出最小的数  但是运行后却是错的   我写的原先的代码是没有写mintomax这个函数的  直接把所有代码写在mian里  这样的话输出是对的 但是写成一个函数却是错了


请问这段代码有什么问题?》有 5 条评论

  1. linder 说:

    #include<stdio.h>
    void main()
    {
      
        int a[5];
        int i;
        for(i=0;i<5;i++)
        {
            scanf(“%d”,&a[i]);
        }
        printf(“%d”,mintomax(a));
        //getch();
    }
    int mintomax(int array[5])
    {
        int i,z,t;
        z=array[0];
        for(i=1;i<5;i++)
        {
            if(z>array[i])
            {
                t=z;z=array[i];array[i]=t;
            }
        }
        return z;
    }

  2. linder 说:

    问题很严重,你不知道,数组下标是从0开始的

  3. goodjob66 说:

    请问我不用0这个数组不行吗   我上面的程序也没有用到0这个数组啊

  4. linder 说:

    你不用0就只能从第二个数值开始访问,而且数组a[n]只能调用到a[n-1],否则内存出错

     

  5. hiroki 说:

    产生数组越界了

留下一个回复