急!!输入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;
}
运行不出结果 展开
我这个哪里错了?求指导
# 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;
}
运行不出结果 展开
展开全部
#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不算完数
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
factorsum函数定义有误,里面的a与之前的a可能有冲突,换个名称试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-17
展开全部
尕多萨格舍得噶倒萨速度速度感
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |