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