求一千以内的完全数,哪里错了😣

如题所述

第1个回答  2015-04-23
第一个循环for下记得初始化x=0追问

printf语句后面?

第2个回答  推荐于2016-01-08

错误很多,主要有两个

    x应在内层循环之前清0;

    应该在所有因子全找出来之后,再检测x是否等于m,你这是在没找到一个因子就检测

代码如下,你体会下吧,请采纳

#include <stdio.h>

int main()
{
 int i,m,x;
 for(m=1;m<=1000;m++)
 {
  x=0;
  for(i=1;i<m/2+1;i++)
   if(m%i==0)
    x=x+i;
  if(x==m)
   printf("%d ",m);
 }
 return 0;
}

追问

谢谢

不过return 0是什么意思

我基本没用过

追答

你的程序里不是也有return 0;么
主函数返回0一般表示程序正常结束,如果程序不能正常执行会返回一个非0值,不写也不会报错,最好加上

追问

为什么😣错了

追答

没错啊,你没输出空格,自己找吧

追问

空格?

哦哦

谢谢啦😊

本回答被提问者采纳
相似回答
大家正在搜