可以帮帮我找出错误吗?拜托!

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:27:13
/* Note:Your choice is C IDE */
#include <stdio.h>
void main()
{
int i,max,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
{
if(a[i]>a[i+1])
{
max=a[i];
}
else
max=a[i+1];
}
printf("max=%d\n",max);
}
.

错了,比较的时候应该和max比较,而且第一个数无需比较就赋值给max,修改如下:

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

以上程序编译会出现一个警告,说可能在使用max之前没有赋值,然而程序可以保证被赋值的,因为i==0的时候无条件赋值,执行没有问题,绝对满足要求。要取消这个警告,就是max定义的时候随便赋予一个初值,但那肯定是多余代码。