作业七

心得:这次作业好难哦,我问了好多人模糊的做了出来,可能是对调用函数理解的不够透彻。

 

 

 

/*使用函数输出指定范围内的完数:输入两个正整数m和n(1<=m,n<=1000),输出m~n之间的所有完数,
完数就是因子和它本身相等的数。
要求定义并调用函数factorsum(number),它的功能是返回number的因子和。
例如,factorsum(12)的返回值是16(1+2+3+4+5+6)。试编写相应程序。*/


#include<stdio.h>
#include<math.h>
int factorsum (int m);
int main(void)
{
 int m,n;
 printf("输入两个正整数m和n(1<=m,n<=1000):");
 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 x,sum;
 for(x=1,sum=0;x<=m/2;x++)
  if(m%x==0)
   sum=sum+x;
  return sum;
}

/*使用函数输出一个整数的逆序数:输入一个整数将它逆序输出,要求定义并调用函数reserve(number),它的功能是返回number的逆序数。
例如;reserve(12345)的返回值是54321.试编写相应程序。*/



#include<stdio.h>
int main()
{
int m,n;
int reverse(int number);
printf("请输入m:\n");
scanf("%d",&m);
n= reverse(m);
printf("%d\n",n);
return 0;
}
int reverse(int number)
{
int n;
n=0;
do{
n=n*10+number%10;
number/=10;
}while(number!=0);
return n;
}

 

 

posted on 2019-05-28 20:27  马丽花  阅读(245)  评论(0编辑  收藏  举报