作业七
使用函数输出指定范围内的完数:输入两个正整数m和n (1<=n,, n<=1 000), 输出m~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数 umn (number) ,它的功能是返回number的因子和。例如, factorsum (12)的返回 值是16 (1+2+3+4+6),试编写相应程序。
#include<stdio.h>
int main()
{
int i,m,n; /*定义变量*/
int foctorsum(int number); /*调用函数factorsum,函数声明*/
printf("请输入你的m,n(m>=1,n<=1000):\n");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
if(foctorsum(i)==i)
printf("完数为%d\n",i); /*输出完数*/
return 0;
}
int foctorsum(int number) /*定义计算完数的函数*/
{
int i,sum;
if(number==1)
return 1;
sum=0;
for(i=1;i<=number/2;i++)
if(number%i==0)
sum=sum+i; /*把它的因数累加起来赋给sum存储起来*/
return sum;
}

使用函数输出一个整数的逆序数:输入一个整数,将它逆序输出。要求定义并 调用函数reverse (number),它的功能是返回number的逆序数。例如, reverse ( 12345) 的返回值是54321.试编写相应程序。
#include<stdio.h>
int main()
{
int m,n; /*定义变量*/
int reverse(int number); /*调用函数reverse*/
printf("请输入m:\n");
scanf("%d",&m);
n= reverse(m); /*调用函数,把返回值赋值给n*/
printf("%d\n",n);
return 0;
}
int reverse(int number)
{
int n;n=0; /*定义计算逆序数的函数*/
do{
do{
n=n*10+number%10;
number/=10;
}
while(number!=0);
return n;
}


浙公网安备 33010602011771号