求一组数的最大值(不使用一维数组)代码哪里出了问题?(应该输出99啊)
不必那么麻烦啊
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。
【相关推荐】