首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个很小的有关问题,不知道咋理解,高手教教

2012-03-31 
一个很小的问题,不知道咋理解,高手教教啊# include stdio.hint main(){int i,j,sumfor (i2i1000i+

一个很小的问题,不知道咋理解,高手教教啊
# include <stdio.h>

int main()
{
int i,j,sum;
for (i=2;i<=1000;i++)
{
  sum=0;
  for(j=1;j<i;j++) // 求因子
  {
  if(i%j==0)  
  sum+=j;
  }
  if (sum==i)
  {
  printf("It is a perfect n: %d\n",i);
  }
}
}


为什么那个sum要在循环里面赋值,而在外面不得呢:求解释;

[解决办法]
因为你是每次循环都得重新初始化sum,如果在外面赋值,下次的循环会保存上次循环的值。
[解决办法]
在里面赋值,是因为每次循环都需要把sum清0.
如果放到for的外面,不就不是每次都清0,而是一直累加了
[解决办法]
就是清零咯

对于程序,你可以从头运算一边,这样容易比较出差别,,对于其他问题也是这么解决
[解决办法]
每次运算都对sum进行了清零。因为你是对i从2到1000分别输出。要放外面了,则是i从2到1000累加。
[解决办法]
哥们自己手动跑一遍程序不就好了! 加油!青年!。。

热点排行