
为什么我的代码运行没有结果?
不明白是哪个地方出错了?
int main()
{ int p,i,sum=0;
printf("1000以内的所有完数为");
for(p=2;p<1000;p++)
{
for(i=1;i<p;i++)
{
if(p%i==0)
{
sum=sum+i;
}
if(p==sum)
{
printf("%d",p);
}
}
}
return 0;
}

关注2处地方有问题:
我给你重新写了一遍,代码见下方。如果对你有帮助,请采纳。
#include <stdio.h>
int main() {
int p, i, sum;
printf("1000以内的所有完数为\n");
for (p = 2; p < 1000; p++) {
sum = 0;
for (i = 1; i < p; i++) {
if (p % i == 0) {
sum += i;
}
}
if (p == sum) {
printf("%d ", p);
}
}
return 0;
}