第七次作业
心得体会
第一题主要考:1、函数的调用(函数的声明与定义);2、完数的判断。
第二题主要考:逆序数与函数调用的结合。
虽然程序大体是做出来了,但是还有很多地方存在缺陷,比如说:1、函数的调用不太熟练;2、特殊程序容易忘;3程序输出格式掌握不到位;4、程序不完善。
/*3.使用函数输出指定范围内的完数:输人两个正整数m和n (1≤m, n≤1 00020输出m ~n之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数表达式是 factorsum ( number),它的功能是返回number的因子和。例如factorsum (12) 的返回值是16 (1+2+3+4+6)。 试编写相应程序。*/
#include<stdio.h>
int factorsum(int x);
int main()
{
int m,n,t,x;
printf("Enter m,n(1<=m,n<=1000):");
scanf("%d%d",&m,&n);
if(m<=n)
{t=m;m=n;n=t;}
if(n<=m)
{t=n;n=m;m=t;}
for(x=m;x<=n;x++)
if(factorsum(x)!=0)
printf("%d\n",x);
return 0;
}
int factorsum(int x)
{
int sum,j;
for(j=1,sum=0;j<=x/2;j++)
if(x%j==0){
sum=sum+j;}
if(sum!=x){
return 0;
}
return 1;
}
int factorsum(int x);
int main()
{
int m,n,t,x;
printf("Enter m,n(1<=m,n<=1000):");
scanf("%d%d",&m,&n);
if(m<=n)
{t=m;m=n;n=t;}
if(n<=m)
{t=n;n=m;m=t;}
for(x=m;x<=n;x++)
if(factorsum(x)!=0)
printf("%d\n",x);
return 0;
}
int factorsum(int x)
{
int sum,j;
for(j=1,sum=0;j<=x/2;j++)
if(x%j==0){
sum=sum+j;}
if(sum!=x){
return 0;
}
return 1;
}
/*6.使用函数输出一个整数的逆序数:输人一个整数,将它逆序输出。要求定义并用函数reverse(number),它的功能是返回number的逆序数。例如,reverse(12345返回值是54321。 试编写相应程序。*/
#include<stdio.h>
int reverse(int number);
int main()
{
int number;
printf("Enter number:");
scanf("%d",&number);
if(reverse(number)!=0)
printf("%d",number);
return 0;
}
int reverse(int number)
{
while(number!=0){
printf("%d",number%10);
number=number/10;}
return number;
}