n=___1___; for(x=1;x<=10000;___2___) { sum=0; for(j=1;j if(x%j==0) sum+=j; if(___3___) n++; } printf("有%d个完数 ",n); }相关知识点: 试题来源: 解析 x++; x=x+1; x+=1 x==sum; sum==x反馈 收藏 ...
首先,这是完全不同的,写在第一个for里面那么,第一个循环每运行一次就将 sum初始化一下,而照你这么写sum值在每得到一个完全数,sum的值就会将这个完全数加上,,所以呢,你这个只能输出第一个完全数,后面的都没有,,,其实用true,false判断比这个好很多,在第二个循环之前初始化一下,,不然sum就会保持...
//编程找出1000以内的所有完数:include <stdio.h> void main(){ int x, i, sum;x = 1;while(x <= 1000) { //x要从1到1000循环.sum = 0; //每算一个新的x时,sum要清0 for(i = 1; i < x; i++) if(x % i == 0) sum += i; //如果i是x的因子,sum加...
int x,j,sum,n; n=___1___; for(x=1;x<=10000;___2___) { sum=0; for(j=1;jif(x%j==0) sum+=j; if(___3___) n++; } printf("有%d个完数",n); } 参考答案:(1) 0 ... 点击查看答案