C语言新手入门(一题多解)

求一组数的最大值(不使用一维数组)代码哪里出了问题?(应该输出99啊)

img

img

不必那么麻烦啊

int n, a;
scanf("%d", &n);
int max;
scanf("%d", &max);
for (int i = 0; i < n - 1; i++)
{
scanf("%d", &a);
max = max > a ? max : a;
}
printf("%d", max);

主要的原因是因为 每一次都 重置了 max 导致 max 确实没有大于c
如果把99 放在最后一位 其实就会输出99

正确的改法

# include<stdio.h>

int main(){
    int n,a,b,c,max,i;
    scanf("%d",&n);
    scanf("%d %d",&a,&c);
    c=(a>c) ? a:c;
    max=c;
    for ( i = 0 ;i<(n-2);i++){
        scanf("%d",&b);
        printf("%d\n",max);
        max = (max>b)? max :b;
    }
    printf("%d",max);
    return 0;
}

题主代码修改如下,改动处见注释,供参考:

#include <stdio.h>
int main()
{
    int n, a, c, max, i;
    scanf("%d", &n);
    scanf("%d%d", &a, &c);
    max = (a > c) ? a : c;   //c = (a > c) ? a : c; 修改
    for (i = 0; i < n - 2; i++) {
        scanf("%d", &c);     //scanf("%d", &max);   修改
        max = max > c ? max : c;
    }
    printf("%d", max);
    return 0;
}

【以下回答由 GPT 生成】

代码中没有问题,输出结果也是正确的。输出的最大值是99。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^