[求助]今天困扰我一天的FOR的白痴问题,希望GGJJ给我讲下
今天我们上课教FOR命令
例子,求数列和1+1+2+1+2+3+…+1+2+…+N
for(i=1;i<=n;i++)
sum+=i;
我就想不通,第一个循环完,执行第3个表达式i++,输出的值是I,还是I++后的值
----------------解决方案--------------------------------------------------------
在线等回复啊,,今天头都想晕了,
----------------解决方案--------------------------------------------------------
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);
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.
----------------解决方案--------------------------------------------------------