作业帮 > 综合 > 作业

输入两个正整数M和N (M>=1,n

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 21:55:08
输入两个正整数M和N (M>=1,n
void main()
{
int m,n,i,t;
int factorsum(int number);//声明一个方法factorsum(int number)
printf("Input m(m>=1):");
scanf("%d",&m);
printf("Input n(n<=1000):");
scanf("%d",&n);
if(m>n)

for(i=m;i<=n;i++)
{ if(i==factorsum(number))//调用方法factorsum(number)
printf("%d",i);
}
}
int factorsum(int number)
{
int i,sum=1;
for(i=2;i<number;i++)
{ if(number%i==0)
sum=sum+i;
}
return sum;
}
注:你在调用方法factorsum(number)时传入的参数是number(为了区分,我们把它叫做“传入的number”),但是number并没有定义,之前在声明方法int factorsum(int number);时定义的变量number(为了区分,我们把它叫做“声明里的number”),“传入的number”与“声明里的number”虽然名字相同,但是却是两个不同的变量,系统报错说没有定义number指的是你“传入的number”没有定义,只要在主函数中定义个number就好啦~还有,即使你在主函数中定义了变量number这个程序的目的也不是输出m到n之间的所有完数~
把你的程序改下如下:
#include<stdio.h>
void main()
{
int m,n,i,t;
int factorsum(int number);
printf("Input m(m>=1):");
scanf("%d",&m);
printf("Input n(n<=1000):");
scanf("%d",&n);
if(m>n)

for(i=m;i<=n;i++)
{ if(i==factorsum(i))//只需把该处传入的参数改成i即可~
printf("%d",i);
}
}
int factorsum(int number)
{
int i,sum=1;
for(i=2;i<number;i++)
{ if(number%i==0)
sum=sum+i;
}
return sum;
}