c语言编程:找出200以内所有完数,请问哪里错了

#include<stdio.h>
int main()
{
int i,n;
int sum=0;
for(i=2;i<=200;i++)
{
for(n=1;n<i;n++)
{
if(i%n==0)
sum=sum+n;
}
if(i==sum)
printf("%d\n",i);
}
return 0;
}
没有error,但编译出来什么也没有

在printf("%d\n",i);的后面需要添加sum=0;及时将sum归零,以便考察下一个数是否满足i==sum。程序中由于sum没有及时归零,一直累加下去,当然就找不到完数了。

if(i==sum)
printf("%d\n",i);
sum=0;//添加这一句

执行结果截图:

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-08

int sum;
for(i=2;i<=200;i++)
{

    sum=0;      //sum=0放在这里

c语言编程:找出200以内所有完数,请问哪里错了
在printf("%d\\n",i);的后面需要添加sum=0;及时将sum归零,以便考察下一个数是否满足i==sum。程序中由于sum没有及时归零,一直累加下去,当然就找不到完数了。if(i==sum)printf("%d\\n",i);sum=0;\/\/添加这一句执行结果截图:

C语言错误,不知道错在哪,找完数200请问哪里错了?
不知道你的题目本意是什么,但是看到第一个循环写错了for(i=1;i<=200;j++),应该是for(i=1;i<=200;i++) 把j++改成i++试试

求教一道c语言题目 【问题描述】 找出200 以内的所有完数,并输出其因子...
结果是正确的,你只输出了完数,没有输出他的因子。include<stdio.h>int main(void){ int i, j, item, r; char ch; for(i = 1; i <= 200; i++) { item = 0; for(j = 1; j < i; j++) { if(i % j == 0) { item = item + j; ...

C语言找出200以内的所有完数。一个数若恰好等于它的各因子之和,称这个...
int main(void){ int i,j,s;for (i=1;i<=200;i++){ s=0;for(j=1;j

c语言编程:找出200以内所有完数,并输出其因子 例如输出6=1+2+3_百...
include <stdio.h> int Perfect(int);void PerfectShow(int,int);void main(){ int num=200;int judge=0,i;for(i=0;i<=200;i++){ judge=Perfect(i);if(judge>1){ PerfectShow(i,judge);printf("\\n");} } getch();} int Perfect(int num){ int max,sum=0;int i;for(i=1;...

编程,找出200以内所有完数,并输出其因子。一个数如恰好等于它的因子之...
int main(){ int n,i,s=0; printf("200以内的完数有:"); for(n=2;n<=200;n++) { s=0;\/\/针对每一个n,s必须重设为0 for(i=1;i<n;i++) { if(n%i==0)s+=i; } if(s==n){ printf("%d:1",n); for(i=2;i<n;i++){ ...

c语言 200以内完数
for(i=1;i<=200;i++){ x=0;\/\/for(j=1;j<i;j++)j=1;while(j

【C语言】用子函数找出200以内所有的完数及其因子.一个数若等于它的各...
i++){if (number%i == 0){a[k] = i;k++;s = s + i;}}if (s == number-1)return (k);else return(0);}void main(){int num, i, k, j, a[20];printf("input the range;\\n");scanf("%d", &num);for (i = num; i>0; i--){k = test1(i, a);if (...

C语言求完数的程序,哪里错了啊啊啊。
%d %d %d %d %d %d %d %d\\n",a,k1,k2,k3,k4,k5,k6,k7,k8,k9,c);这个if里边的判断写错了,应该是 if(a==(k1+k2+k3+k4+k5+k6+k7+k8+k9))注意这里是两个=号,好的编程习惯会写成 if((k1+k2+k3+k4+k5+k6+k7+k8+k9)==a)这样编译器在编译的时候就会帮你检测出来 ...

我编的求完数的C语言代码哪错了
n<=1000;n++){ for(i=1;i<=n;i++)这两循环中的<=中的=号都不要,就可以了。完数是因子之和等于它本身,但这个因子,不包括它本身,如6,它的因子有1,2,3,6,除去6本身,那么1+2+3刚好等于6.你的<=中,就把1000本身包括进去了,当然结果是错的了 这个回答,你还满意 吧?

相似回答