C语言一道计算题的问题

main()
{
int a,b;
for(a=0;a<=10;a++)
{
  if(a*2+(10-a)*3==26)
  {
    b=10-a;
    printf("%d %d",a,b);
    }
}
getch();
}
运算结果;a=4,b=6(是正确的结果_


main()
{
int a,b;
for(a=0;a<=10;a++)
{
  if(a*2+(10-a)*3==26)
  {
    b=10-a;
  }
  printf("%d %d",a,b);
}
getch();
}
运算结果不符合预期的.


本人好奇,想试试printf()语句的一些作用范围.
于是在该程序中将printf()做了变化.为什么结果不同?
有没有人知道其中的调试过程,就是各个数据值在各语句中的变化情况?
请详细讲给我听.因为我在写循环和选择语句时应该把printf()语句的位置写错.导致很多错误发生.







最后编辑2006-10-05 16:36:25