作业七

使用函数输出指定范围内的完数:输入两个正整数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{
                  n=n*10+number%10;
                  number/=10;
                 }
               while(number!=0);
                     return n;
}
posted @ 2019-05-28 21:15  薛子煜  阅读(216)  评论(0)    收藏  举报