当前位置: 代码迷 >> C语言 >> [求助]今天困扰我一天的FOR的白痴问题,希望GGJJ给我讲下
  详细解决方案

[求助]今天困扰我一天的FOR的白痴问题,希望GGJJ给我讲下

热度:172   发布时间:2005-11-02 16:49:00.0
[求助]今天困扰我一天的FOR的白痴问题,希望GGJJ给我讲下

今天我们上课教FOR命令

例子,求数列和1+1+2+1+2+3+…+1+2+…+N

for(i=1;i<=n;i++)
sum+=i;
我就想不通,第一个循环完,执行第3个表达式i++,输出的值是I,还是I++后的值

搜索更多相关的解决方案: GGJJ  FOR  困扰  

----------------解决方案--------------------------------------------------------
在线等回复啊,,今天头都想晕了,
----------------解决方案--------------------------------------------------------
for(i=1;i<=n;i++)
sum+=i,printf("%d\n",i);

----------------解决方案--------------------------------------------------------
输出的是I值.
++i输出的是加后的值.
----------------解决方案--------------------------------------------------------
如果输出的是I值,那2次循环判断不是就为真了。那意思还要循环一次??
----------------解决方案--------------------------------------------------------
以下是引用knocker在2005-11-2 16:59:05的发言:
for(i=1;i<=n;i++)
sum+=i,printf("%d\n",i);

PRINTF 出来是2


----------------解决方案--------------------------------------------------------
如果N=2

for(i=1;i<=n;i++)
sum+=i;

循环2次,结果是3的啊

实际结果是4啊
----------------解决方案--------------------------------------------------------
谁给讲讲啊?
----------------解决方案--------------------------------------------------------

#include<stdio.h>
void main()
{
int n,i=1,s;
int a[100];
printf("enter n:");
scanf("%d",&n);
s=0;


a[0]=1;
for(i=2;i<=n;i++)
{
a[i-1]=i+a[i-2];
}

for(i=0;i<n;i++)
s+=a[i];


printf("%d",s);

}


----------------解决方案--------------------------------------------------------
i++;++i是有区别的,i++是先执行表达式后才自增,而++i是先自增后在执行表达式的,
也就是说你上面的是先i=1,在执行完一个for后在增加1,也就是现在执行一次for后i=2.

----------------解决方案--------------------------------------------------------