第七次作业:数据类型与表达式

在此次作业过程中,我发现了许多我存在的问题:1,对函数调用的格式存在错误

                      2,不明白函数的调用过程:参数的传递之前没有完全透彻

                      3,做算法时考虑不够全面

设计了这些知识点:函数的定义(函数首部,函数体),函数调用(函数调用过程和形式,参数传递,函数结果返回),函数程序的设计。

第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 number);
int main(void)
{
int m,i,n,number,sum;
scanf("%d%d",&n,&m);
for(i=n;i<=m;i++)
if(i==factorsum(i))
printf("%d\n",i);
return 0;
}
int factorsum(int number)
{
int i,sum;
sum=0;
for(i=1;i<number;i++){
if(number%i==0)
sum=sum+i;}
return sum;
}

 

 

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

#include <stdio.h>
int reverse(int number);
int main(void)
{
int i,t;
int reverse(int number);
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;
}

 

 

猜你喜欢

转载自www.cnblogs.com/qiii/p/10939851.html