有区别,有{}的时候(你说的第一种),参与for循环的是两句printf语句,输出的应该是:
*
*
*
*
*
*
*
*
*
*
*
而如果没有{},那么 printf("\n")就不参与循环,所以只输出一次,也就是输出:
***********
还有,顺便说下,你这里应该是for(i=0;i<=10;i++) 而不是for(i=o;i<=10;i++) 呢
补充:
main()
{
float n,s=0,t=1;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf("1+2!+3!...+20!=%e\n",s);
}
这个程序中当N=2时"t=1*1*2"当t=1*1时是不是就要执行"s+=t"啊
对的,不过不仅当n=2的时候s+=t要执行每一次执行循环都要执行这句,它的过程如下
循环次数 n t s
1 1 1*1 0+1
2 2 1*2 1+2
3 3 2*3 3+6
4 4 6*4 9+24
以此类推
当然有。如果加括号,后边打印换行符就在循环体里面,那么每次循环的时候也会打印出来。没有括号的话,换行符只有循环体结束之后才执行一次。
结果上就是有括号的话相当于打印出来11行*,
没有括号的,只有一行,打印出来11个*之后换行。
希望有用。
main()
{int i;
for(i=0;i<=10;i++) //兄弟,零与字母o要分清 !
{printf("*");
printf("\n") ;}//少分号。有{}括号时,这行要执行11次,没有括号时,只执行1次。
}
main()
{int i ;
for(i=o;i<=10;i++)
{printf("*");
printf("\n") }
}
每输出一个*就换行一次,
main()
{int i;
for(i=o;i<=10;i++)
printf("*");
printf("\n") ;
}
输出了十个*后,仅换行一次