第七次作业

心得:刚开始看第三题时,我连题目的意思也不懂,在网上查了好久才明白了题目的意思,但是发现算法也不会,又在网上查了资料才了解了算法。之后才做出来的。这几道题都很难,借助了网络才做出来了。要熟练掌握函数的定义并调用,课下还得经常练习。

 

 

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

#include<stdio.h>
int factorsum(int m);
int main(void)
{
  int n,m;
  printf("输入两个正整数n m(1<=m,n<=100):\n");
  scanf("%d%d",&n,&m);
  for(m;m<=n;m++)
   if(factorsum(m)==m)
    printf("m=%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>
void reverse(int m);
int main(void)
{
 int m,n;
 printf("输入一个整数m:");
 scanf("%d",&m);
 reverse(m);
 return 0;
}
void reverse(int m)
{
 while(m!=0){
  if(m>10)
   printf("%d",m%10);
  else
   printf("%d",m);
  m=m/10;
 }
 printf("\n");

}

 

posted @ 2019-05-28 21:22  马彪  阅读(95)  评论(0编辑  收藏  举报