C语言中FOR语句的问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 08:08:42
main()
{
int a[11];
int i,j,t;
printf("input 10 numbers :\n");
for (i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for (j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[a+1])
{t=a[i];a[i]=a[a+1];a[a+1]=t;}
printf("the sorted numbers :\n");
for(i=1;i<11;i++)
printf("%d",a[i]);
getch();
}
书上的例子,我想问下,第9行开始的FOR语句的语句范围到哪里
第10行的FOR语句又是到哪里,还有第13行的printf ,是

第九行的是从9-12行
第十行的是从10-12行

第13行的是上面所有的FOR语句执行完毕之后才开始执行。

for (j=1;j<=9;j++)
{
for(i=1;i<=10-j;i++)
{
if(a[i]>a[a+1])
{
t=a[i];a[i]=a[a+1];a[a+1]=t;
}
}
} printf("the sorted numbers :\n");
for(i=1;i<11;i++)
{
printf("%d",a[i]);
getch();
}
这样就看清楚了吧,
不过你程序好像写错了 if(a[i]>a[a+1])
{t=a[i];a[i]=a[a+1];a[a+1]=t;}
a要换掉吧,头文件也没加

你上面这种写法是很容易产生误解,正确的写法是
for(...)
{

}
这两个花括号之间的是for管的内容,如果不写括号那么c中默认是管下面一句话,所以第九行的管第十行,因为第10行是for所以看他管的东西,所以管到12行,第十行管第十一行,而第十一行是if所以其实管十一和十二行,而那个printf()是当for执行好了以后再执行。
以后编程的时候最好勤加花括号。

for语