标题:关于赋值的问题
只看楼主
wxl03120
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2004-7-25
 问题点数:0 回复次数:2 
关于赋值的问题

在1000以内求完数(6的因子有1 2 3 6=1+2+3 6是完数) 并输出其因子

main() { int a,sn,b; for(a=2;a<1000;a++) { sn=0; /*为什么在这赋值 我在定义时赋值 没报错 但什么也不输出*/ for(b=1;b<a;b++) if((a%b)==0) sn=sn+b; if(sn==a) { printf("%d its factors are",a); for(b=1;b<a;b++) if(a%b==0) printf("%d ",b); printf("\n"); } } getch(); }

我用的是WIN-TC 1.8

搜索更多相关主题的帖子: 赋值 printf 定义 its main 
2004-08-08 13:31
wubbin
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2004-8-6
得分:0 
因为你是使用循环对2,3,...,1000逐个求完数,当然每次求之前sn都要清零,这样才能保证sn为对应当前a的因数和。
如果只在定义时赋0,在循环过程中sn会把2,3,...,1000的所有的因子都累加起来。
2004-08-08 13:40
youthlin
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2004-8-7
得分:0 

同意,你看如果把SN一开始赋值的话,那么它不是在整个循环中都是那个初值了

2004-08-08 16:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-4008-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.525579 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved