#include<stdio.h>
int main()
{
int i;
int max;
int a[]={10,5,20,4,31,};
max =a[0];
for(i=0;i<10;i++)
//printf("%d\n",i);
if (a[i]>max)
max=a[i];
printf("最大的数字为%d\n",max);
return 0;
}
if (a[i]>max)
max=a[i];
20也大于max为什么就不直接输出20=max,而是输出31呢?
1 回答
已采纳
这都不会
TA贡献72条经验 获得超92个赞
是这样的,因为for循环,所以会把数组a都遍历一遍。
详细说一下过程:
i = 0,max = 10,不赋值
i = 1,max = 10,不赋值
i = 2,max = 10,因为20大于10,赋值,max变为20。
注意:此时仍未结束循环,所以不做输出。为什么不结束呢?因为for、if这些关键字后面如果不带有大括号,只对后面一句代码有效,如果想对多行代码使用for,就必须用大括号括起来。虽然这里你的printf缩进了,但其实并不是for循环内的语句,而在循环外。所以在循环结束之后才会运行printf
i = 3,max = 20,不赋值
i = 4,max = 20,因为31大于20,赋值,max变为31。
......
循环结束后,输出31。
- 1 回答
- 0 关注
- 983 浏览
添加回答
举报
0/150
提交
取消