c中 比较数组中的个元素大小 输出最大值,为啥输出结果不对(新手小白等大佬解答)

#include<stdio.h>

int main(void)
{
    int i,n,max;
    int a[10];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);    
    }
    for(i=0;i<n-1;i++)
    {
        if(a[i]>a[i+1])
        {
            max=a[i];
        }
        else
        {
            max=a[i+1];
        }
    }    
    printf("%d",max);
    return 0;
}

修改了一下,主要原因就是一些细节上的处理,比如最大值没有赋初始值等
改正如下:

#include<stdio.h>
 
int main(void)
{
    int i,n,max;
    int a[10];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);    
    }
    max = a[0];
    for(i=0;i<n;i++)
    {
        if(a[i]>max)
        {
            max=a[i];
        }
    }    
    printf("%d",max);
    return 0;
}

运行结果如图:

img


以上仅供参考,希望对题主有所帮助!