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

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 13:58:29
输入两个正整数M和N (M>=1,n
xU]OA+Fq>?H;;b4QĶPiQ Uh!f__蝝]D+iM>0{Ν;l4`@ֈvB3v~JmVj~z.*Y >M\Jal..E۝pp!Qc 2z|LC$Za&TͽgYTͰ{&[zg<'d`[Ƕ[, X=\.9JV'g|_m!v" R36P/@#= NaIi09jxB<~G,koj%MZXcMK[4ץ-ߑWҋ ZB*,0O@*}kHC;gVЋ @M3y&Ph? P-Au /AD1ucqݜ۰K<:%3z,[F{ Rу45hz4Q\Ġ7Zitռ*Tѯ0<Լ&Ma\J:` DG*Uh {m=uUL_6 8ڢaѶ:0VE~b<}/z7 NyPMBFl޿K"8UZhO/q1Ir

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

输入两个正整数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;
}