level 4
# include<stdio.h>
void main()
{int i,j,sum1=0,sum2=0,k1=0,k2=0;
for(i=1;i<=1000;i++)
{for(j=1,sum1=0;j<i;j++)
if(i/j==0) sum1=sum1+j;
if(sum1==i) {if(k1<sum2) printf("完数%d+",k2);
k1=sum2; sum2=sum2+i; k2=i;}
}
printf("完数%d=和值%d\n",k2,sum2);}
谢谢了
2013年05月31日 03点05分
1
level 7
意义不明,你先说说干什么的
写法很烂啊,然后别用sum1,sum2这种名字,看着就不舒服,for和if嵌套太多了吧,for(j=1,sum1=0;j<i;j++)这句有什么意义么?没有循环的过程,也可能是我没看懂,建议规范写法,该空空,该换行换行
重新写个流程吧
2013年05月31日 09点05分
8
回复 matclonex :我刚学。。。。其实一开始就有人指出我的程序风格糟糕,但是就是不知道该怎么改。。。求教
2013年05月31日 16点05分
这个题目是: 1.如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,例如:6的因子为1,2,3,且1+2+3=6,因此6是一个“完数”。计算并输出1000以内的所有“完数”之和。具体要求如下:①所有循环均用for循环。 ②输出要有文字说明,并同时输出各“完数”。输出形式为:完数1+完数2+…=和值
2013年05月31日 16点05分
对了。。。。sum1 sum2为什么不好呢。。。。很多弄不清楚的望见谅求教
2013年05月31日 17点05分
回复 亲爱的牛奶糖 :确实你这么一描述把/换车%就出运行结果了。程序风格没有呢么玄,总得来说就3点,好好写格式,好好取名字,好好写注释
2013年06月01日 03点06分
level 9
这个求1000以内的完数,到现在都不知道完数是什么概念
2013年05月31日 12点05分
13
![[乖]](/static/emoticons/u4e56.png)
嗯哪
2013年05月31日 16点05分