c语言 求1~1000之间的完数

#include <stdio.h> void main() { int a=1,b,sum=0; while(a<=1000) { b=1; while(b<=(a/2)) { if((a%b)==0) sum=sum+b; b++; } if(a==sum) printf("%d\n",a); a++; } } 运行完什么都没有显示 哪里不对?

简单的一个错误,改正在程序注释中
#include
<stdio.h>
void
main()
{
int
a=1,b,sum;
while(a<=1000)
{
sum=0;
//应该在这儿对sum赋值0,若每次循环不重新对
sum赋予0值则sum为所有累加和
b=1;
while(b<=(a/2))
{
if((a%b)==0)
sum=sum+b;
b++;
}
if(a==sum)
printf("%d\n",a);
a++;
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答