在C语言中,下列代码的输出结果是( )

来源:百度知道 编辑:UC知道 时间:2024/06/07 07:37:42
void main()
{
int i=0,j=10;
for(i=0;i<j;i++,j--)
{
if(j==10)
{
printf(“%d,%d\n”,i,j);
j--;
}
j++;
}
printf(“%d,%d”,i,j);
}
为什么输出是9,9呢?是怎么样执行的啊?

void main()
{
int i=0,j=10;
for(i=0;i<j;i++,j--)
{
if(j==10)
{
printf(“%d,%d\n”,i,j);//输出一次i=0,j=10
j--;
}
j++;
}
printf(“%d,%d”,i,j); //i=9,j=9
}

0,10
9,9

if(j==10)里面的语句只有第一次循环时执行了,输出0,10
然后j--,这时j是9,而后面的j++和for()里面的j--抵消了,j还是9, 以后的9次循环里,if后面的语句再也没有执行了,而j++和for()里面的j--每次都抵消,所以j一直是9,
i每次++,一共执行10次,从0到9,所以最后输出i和j是9,9