/*3.使用函数输出指定范围内的完数:输人两个正整数m和n (1≤m, n≤1 00020输出m ~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数表达式是 factorsum ( number),它的功能是返回number的因子和。例如factorsum (12) 的返回值是16 (1+2+3+4+6)。 试编写相应程序。*/
#include<stdio.h>
#include<math.h>
int factorsum(int m);
int main()
{
int m,n;
printf("Enter m n:");
scanf("%d%d",&m,&n);
for(m;m<=n;m++)
if(m==factorsum(m))
printf("%d\n",m);
return 0;
}
int factorsum(int m)
{
int sum,i;
for(i=1,sum=0;i<=m/2;i++)
if(m%i==0)
sum=sum+i;
return sum;
}
#include<math.h>
int factorsum(int m);
int main()
{
int m,n;
printf("Enter m n:");
scanf("%d%d",&m,&n);
for(m;m<=n;m++)
if(m==factorsum(m))
printf("%d\n",m);
return 0;
}
int factorsum(int m)
{
int sum,i;
for(i=1,sum=0;i<=m/2;i++)
if(m%i==0)
sum=sum+i;
return sum;
}
/*6.使用函数输出一个整数的逆序数:输人一个整数,将它逆序输出。要求定义并用函数reverse(number),它的功能是返回number的逆序数。例如,reverse(12345返回值是54321。 试编写相应程序。*/
#include<stdio.h>
#include<math.h>
int reverse(int m);
int main()
{
int m;
printf("输入一个数m:");
scanf("%d",&m);
reverse(m);
printf("%d",reverse(m));
return 0;
}
int reverse(int m){
int sum, x;
sum=0;
while(m!=0){
x=m%10;
sum=sum*10+x;
m=m/10;
}
return sum;
}
心得:虽然这次程序做出来了,但仍然存在很多问题,对函数不熟悉,编程序还不熟练,还要多上机。