作业7

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

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

}

第6题:

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

//*使用函数输出一个整数的逆序数*//

#include<stdio.h>
int main(void)
{
 int i,t;
 int reverse(int number);
 printf("输入一个整数:");
 scanf("%d",&i);
 t= reverse(i);
 printf("%d\n",t);
 return 0;
}
int reverse(int number)
{
 int flag,t;
 if(number>=0)
  flag=1;
 else
 {
  flag=-1;
 number=-number;
 }
 t=0;
 do{
  t=t*10+number%10;
  number=number/10;}
 while
  (number!=0);
 return flag*t;
}

心得:感觉这次作业好难,拿到题目无从下手,做作业的过程中发现自己对这方面的知识掌握的还是不够好,导致作业完成的特别慢,最后还是借助了外界工具才得以完成。要掌握子函数的定义并调用,课下还得多加练习,对课上讲过的程序没有很好的消化。

posted @ 2019-05-27 19:51  马艳  阅读(220)  评论(1编辑  收藏  举报