c语言问题求助~~~~

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:07:58
#include "stdio.h"
main()
{
int a,n,m=0,i=1,sn=0;
printf("请输入n,a:\n");
scanf("%d,%d",&n,&a);
while(i<=n)
{
m=m+a;
sn=sn+m;
a=a*10;
++i;
}
printf("a+aa+aaa+......+aa..a=%d",sn);

}
请问此源程序中的++i能否改成i++;为什么?麻烦知道的说下.先谢过

可以阿 没有问题!

像代码中 ++i;是一个单独的代码!这种情况下++i 和 i++都可以互换的!但是如果++i在代码之中就不可以了!

++i;是i先自加,之后在参与运算,而i++是i先参与运算然后再自加。

如下:
i = 2;
a = ++i*20; //这里i先自加 变成3*20;那么a的结果为60 i的结果为3。

如果改为
a = i++*20; //这里i先参与运算 变成2*20;a的结果为40 i为3

不管哪种方法 i最后都要自加。

如果还有疑问可以发短消息给我!

++i 和 i++ 的区别是:
++i 是先自身 变成 i=i+1; 在运算
i++ 是先运算再加 运算时是 i ++不对他产生影响 运算后 就变成了 i=i+1;

程序中的++i 改成i++是没有问题的,他们区别只是在有赋值的情况下才有区别。
比如i=1
j=++i;//这里i先自己加1,然后赋值给j,所以j=2,i=2

j=i++;//这里先给j赋值,然后i在自己加1,所以j=1,i=2

程序里面因为没有涉及到赋值的运算,所以改换一下没有问题