{int a=1,b=1;for( ;a--; ;)b--;printf("%d %d",a,b)}

{int a=1,b=1;for( ;a--; ;)b--;printf("%d %d",a,b)}

1 个回答

七七爱小宝

提问:{int a=1,b=1;for( ;a--; ;)b--;printf("%d %d",a,b)}

网友回答:

所给出的程序段有些错,修改后作为一个完整的程序如下:
#include <stdio.h>
int main()
{
int a,b=1;
for(a=1;a--;)
  b--;
  printf("%d %d",a,b);
return 0;
}

程序的运行结果正是:


解析:
for循环的执行过程分析:
①a=1,判断循环条件a--!=0成立(a--是先使用,再减1,之后a=0),执行循环体b--,b=0;
②a=0,判断循环条件a--!=0不再成立,结束循环,但是a先使用后,再减1,则a=-1。 
最后,执行printf("%d %d",a,b);将输出a、b的值,正是-1,0.

  • 1 关注
  • 0 收藏, 浏览
  • 提出于

相似问题