main()
int f[10],max,i;
for(i=0;i<10;i++)
scanf("%d“,&f[i]);
for(i=0;i<10;i++)
{max=0;
if(max
}
printf("max is%d",max);
}
把max=0提到循环前头
main()
int f[10],max,i;
for(i=0;i<10;i++)
scanf("%d“,&f[i]);
max=0;
for(i=0;i<10;i++)
{
if(max
}
printf("max is%d",max);
}
修改后的程序如下:
你运行一下看看,看看能不能自己找到你的错误
#include
main(){
int f[10],max,i;
for(i=0;i<10;i++)
scanf("%d",&f[i]);
for(i=0;i<10;i++)
{max=0;
if(max
}
printf("max is%d",max);
}
for(i=0;i<10;i++)
{max=0;
if(max
}
问题在这
每次循环max都先赋0了
f都是正数
所以max只能是f[9]了····
修改如下
main()
{
int f[10],max=0,i;
for(i=0;i<10;i++)
scanf("%d“,&f[i]);
for(i=0;i<10;i++)
if(max
printf("max is%d",max);
}
1.你每次进循环都max=0; 那么得到的肯定是数组的最后一个值了。
2.注意了,最后一个应该是f[9].
这个很明显啊,max=0这个你写在for循环里,也就是说每次执行一次for循环,max就等于0了,只要你的f[10]比0大,那么最后的结果max肯定就等于f[10],你把max=0这个放到for循环外面就对了
把 max = 0 写在for 前面,不应该写在循环里面,否则每次进入循环都会先把max置成0