pheron 发表于 2019-5-21 16:34:48

一个简单的求一千以内的完数的程序没有输出

我也没看出来哪里出了问题。。。

#include<stdio.h>
#include<stdbool.h>

bool IsPerfect(int);

int main(void)
{
      int i;
      puts("There is all of perfect number less than 1000: ");
      for(i = 2; i <= 1000; i++);
      {
                if(IsPerfect(i))
                        printf("%d      ", i);
      }
      puts("");
      return 0;
}

/**************************************
                        判断i是否是完数
思想为:变量s为可以整除i的数(div)的和
      如果s和i相等则i是完数
**************************************/
bool IsPerfect(int i)
{
      int div, s = 0;
      int j = i / 2 + 1;
      for(div = 1; div <= j; div++)
      {
                if(i % div == 0)
                        s += div;
      }
      if(s == i)
                return true;
      else
                return false;
}

Croper 发表于 2019-5-21 16:46:39

for(i = 2; i <= 1000; i++);
分号去掉

pheron 发表于 2019-5-21 21:59:28

Croper 发表于 2019-5-21 16:46
分号去掉

我勒个大槽。。。这种错。。。
页: [1]
查看完整版本: 一个简单的求一千以内的完数的程序没有输出