帮小妹看看这程序是怎样运行的吧!
问:下面程序的运行结果是 main ( )
{ int i,x,y; i=x=y=0;
do { ++ i;
if(i%2!=0) {x=x+i; i++; }
y=y+i++;
} while(i<=7);
printf(“x=%d, y=%d\n”,x,y);
}
主要是每一步是怎么运行的,望帮忙,谢谢。
----------------解决方案--------------------------------------------------------
单步运行可以看得很清楚
----------------解决方案--------------------------------------------------------
小弟不才,在dev-cpp v4.9.9.2下的结果是:x=1, y=20
下面是代码,再下面有 C操作符的优先级,自己看着做
[CODE]
#include <stdio.h>main ()//注意符号,是半角英文输入状态,下面也是
{
int i,x,y;
i=x=y=0;
do{
++ i;
if(i%2!=0)//条件,当i是奇数时成立
{
x=x+i;
i++;
}
y=y+i++;//i的后缀++ 与y相加
} while(i<=7);
printf("x=%d, y=%d\n",x,y);
}
[/CODE]
[此贴子已经被作者于2007-8-5 14:54:05编辑过]
----------------解决方案--------------------------------------------------------
在程序里添加几句后:
main ( )
{ int i,x,y; i=x=y=0;
do { ++ i;
printf("i=%d\n",i);
if(i%2!=0)
{ x=x+i;
printf("x=%d\n",x);
i++;
printf("i=%d\n",i);
}
y=y+i++;
printf("y=%d\n",y);
printf("i=%d\n",i);
} while(i<=7);
printf("x=%d, y=%d\n",x,y); getch();
}
运行结果即可显示过程了:
i=1
x=1
i=2
y=2
i=3
i=4
y=6
i=5
i=6
y=12
i=7
i=8
y=20
i=9
x=1, y=20
----------------解决方案--------------------------------------------------------
这个是“c编译器对c的操作符号的编译和执行的顺序和优先级”(本人注:不同的编译器,编译的结果可能会不同,也就是说依赖于编译器)
[此贴子已经被作者于2007-8-5 14:55:32编辑过]
----------------解决方案--------------------------------------------------------
么么上面几位啦
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
把每一步拆解开来慢慢分析把。
----------------解决方案--------------------------------------------------------
对,根据编译器不同而结果不同,以前这里好象有人发过类似的帖子,而且我也跟我的老师探讨过,咱老师说不要太死研究这类问题,意义不大的
----------------解决方案--------------------------------------------------------
你的"," ";"用的都有问题,太恐怖了
----------------解决方案--------------------------------------------------------