c语言程序问题 高手指点

来源:百度知道 编辑:UC知道 时间:2024/09/20 18:41:32
#include<stdio.h>
main()
{
int a,i,max;
max=0;
for(i=1;i<=10;i++)
{
scanf("%d",&a);
if(max<a)
max=a;
}
printf("max=%d",max);
}

请问下大家我对这段程序不太理解
{
scanf("%d",&a);
if(max<a)
max=a;
}
就是去掉这段程序的花括号与不去掉 结果是不一样的 我想知道为什么会不一样 这个花括号在程序中的的作用是什么 哪个高手能指点一下
谢谢了
谢谢各位大哥 小弟我正在学习c语言 还是菜鸟阶段 我会努力的

for(i=1;i<=10;i++)
{
scanf("%d",&a);
if(max<a)
max=a;
}
中间的3行是循环体
但是要是改为
for(i=1;i<=10;i++)
scanf("%d",&a);
if(max<a)
max=a;
只有sacnf一句是循环体,导致max只是0和最后输入的数字之间的较大值
而不是所有输入值的最大者了

花括号就是把这几句话变成一个整体,就是捆绑在一起
也就是说 括号里面的句子要么一起被执行要么一起不执行

{}把中间的那三行作为一个块来处理。
这样在for语句后面,就会执行3次。

如果不加,那么它们就是独立的三条语句。只有scanf会被执行3次,后面的不会在循环里执行。

for(i=1;i<=10;i++)
{
scanf("%d",&a);
if(max<a)
max=a;
}
当然不一样,因为括号内是完整的FOR循环,是一个复合语句,for循环()后的一个语句,是循环体.
继续努力吧^^^^

因为for不加花括号的话后面只能有一个语句随for进行循环操作.加了花括号,就是花括号里的句子都随for做循环运行.
也就是说原文里如果没加花括号,那么只有
scanf("%d",&a)
随着for循环,最后输出的结果不是0就是最后一个输入的 值.
加了花括号,运行的就是
{
scanf("%d",&a);
if(max<a)
max=a;
}
输出的就是你输入的10个数和0之间的最大值.

这个很简单的,括号内是一个整体,没有括号for后面的第一句才进行循环,结果当然不一样。