为什么结果一样
#include "math.h"main()
{int a,n,count=1,sn=0,tn=0;
scanf("%d,%d",&a,&n);
while(count<=n)
{tn=tn+a;sn=sn+tn;a=a*10;++count;}
printf("%d",sn);
getch();}
此程序中++count换成count++运行结果一样,为什么?
----------------解决方案--------------------------------------------------------
不为什么啊。
一样就是 一样,这个很正常啊,
因为变的东西就是count 啊,,,,很简单啊!
----------------解决方案--------------------------------------------------------
知道count++与++count的区别么?理解了就可以了
----------------解决方案--------------------------------------------------------
书是最好的老师!
基础很重要~~~~
----------------解决方案--------------------------------------------------------
事实上,++ 在变量前,或在变量后,实现的功能是一样的, 都是将变量增加1; 书本上提醒要特别注意,这是因为它们规则上存在稍微的差别,就是变量的使用先后, ++ 在变量前,是先加后使用变量,程序在当前那条语句使用前变量就已经+1; 而与次相比,++ 在变量后面,是使用变量的当前值应用于当前那条语句,在该语句结束后立即+1。 可能在您的循环中,并不需要理会这种差别。
[此贴子已经被作者于2005-5-12 1:40:29编辑过]
----------------解决方案--------------------------------------------------------
这是自加运算符的优先级问题
----------------解决方案--------------------------------------------------------
以下是引用ChenMo在2005-5-12 1:39:49的发言:
事实上,++ 在变量前,或在变量后,实现的功能是一样的, 都是将变量增加1;
书本上提醒要特别注意,这是因为它们规则上存在稍微的差别,就是变量的使用先后,
++ 在变量前,是先加后使用变量,程序在当前那条语句使用前变量就已经+1;
而与次相比,++ 在变量后面,是使用变量的当前值应用于当前那条语句,在该语句结束后立即+1。
可能在您的循环中,并不需要理会这种差别。
还 有就是 表达式前的++和表达式后的++也不一样.....
B=++A*C先给A+1再和C乘
B=A++*C先和C乘再给A+1
不知道偶说的对不?????记得不太清楚了,,,, ----------------解决方案--------------------------------------------------------
好好看书吧,就像上面的老兄说的那样咯
----------------解决方案--------------------------------------------------------
运算符优先级问题,
----------------解决方案--------------------------------------------------------
本来就是,你这里的count是用来计数的,而不是用来考虑其本身的值。
----------------解决方案--------------------------------------------------------