急!!输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求

输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能... 输入2个正整数m和n(m>=1,n<=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,factorsum(12)的返回值是16(1+2+3+4+6)
我这个哪里错了?求指导
# include<stdio.h>
int main()
{int factorsum(int number);
int m,n,a;
m>=1;
n<=1000;
scanf("%d,%d",&m,&n);
for (a=m;a<=n;a++)
{if (a=factorsum(a))
printf("%d",a);
}
}

int factorsum(int number)
{int i=1,a=0;
for(i=1;i<number;i++)
{if(number%i==0)
a=a+i;
}
return a;
}

运行不出结果
展开
 我来答
百度网友6fe74e2
推荐于2017-12-15 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:274万
展开全部

#include<stdio.h>

int main()

{

     int factorsum(int number);

     int m,n,a;

     //这两句去掉,没有意义

     //m>=1;

     //n<=1000;

     scanf("%d,%d",&m,&n);

     for (a=m;a<=n;a++)

     {

          if (a==factorsum(a))//判断是否相等应该是==if (a=factorsum(a))

           printf("%d ",a);//输出元素间加个空格分开printf("%d",a);

     }

}

 

int factorsum(int number)

{

     int i=1,a=0;

     for(i=1;i<number;i++)

     {

      if(number%i==0)

       a=a+i;

     }

     return a;

}

 

 

 

 

更多追问追答
追问
结果应该还有1,比如输入1,100 输出应该是1,6,28 
请问要怎么改呢?
追答
factsum函数,for循环条件改成i<=number
不对,不要那么改,直接在他循环外面加判断,如果number==1直接return1
而且个人觉得1不算完数
汐日南莘
2013-04-16 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7639万
展开全部

 

#include<stdio.h>

int main()

{int factorsum(int number);

int m,n,a;

m>=1;

n<=1000;

scanf("%d,%d",&m,&n);//要输入逗号 你输入数据时有没输入逗号呢?

for (a=m;a<=n;a++)

{if (a==factorsum(a))//是等于号  就这一个问题  其它地方都是对的

printf("%d  ",a);

}

}

int factorsum(int number)

{int i=1,a=0;

for(i=1;i<number;i++)

{if(number%i==0)

a=a+i;

}

return a;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
遗留下的玫瑰色
2013-04-16
知道答主
回答量:25
采纳率:0%
帮助的人:10.4万
展开全部
factorsum函数定义有误,里面的a与之前的a可能有冲突,换个名称试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-17
展开全部
尕多萨格舍得噶倒萨速度速度感
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式