第七次作业

 第六次作业:

1、利用函数计算素数个数并求和:输入两个正整数m 和 n(1<=m, n<=500),统计并输出 m 和 n 之间的素数的个数以及这些素数的和。要求定义并调用函数 prime(m)判断 m 是否为素数。试编写相应程序。 2、写心得 3、评价前一个同学的作业

#include<stdio.h>
#include<math.h>
int prime(int m);
int main(void)
{
 int count,m,n,i,sum;
 printf("Enter m,n(1<=m,n<=500):\n");
 scanf("%d%d",&m,&n);
 for(count=0,sum=0;m<=n;m++){
  if(prime(m)!=0){
   count++;
   sum=sum+m;}
  }
 printf("count=%d,sum=%d\n",count,sum);
 return 0;
}
int prime(int m)
{
 int i,s;
 if(m==1)
  return 0;
    s=sqrt(m);
 for(i=2;i<=s;i++)
  if(m%i==0){
  return 0;
 }
  return 1;

 

 第七次作业:

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 a);
int main(void)
{
 int a,b,m,n;
 printf("Enter m,n(1<=m,n<=1000):\n");
 scanf("%d%d",&m,&n);
 if(m<=n){
  b=m;
  m=n;
  n=b;
 }
 if(n<=m){
  b=n;
  n=m;
  m=b;
 }
 for(a=m;a<=n;a++){
  if(factorsum(a)!=0)
   printf("%d\n",a);}
 return 0;
}
int factorsum(int a)
{
 int i,sum;
 sum=0;
 for(i=1;i<=a/2;i++)
  if(a%i==0){
  sum=sum+i;
 }.
  if(sum!=a){
   return 0;
  }
  return 1;
}

 

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

#include<stdio.h>
int reverse (int x);
int main(void)
{
 int x,y;
 printf("Enter x:\n");
 scanf("%d",&x);
    y=reverse(x);
    printf("%d\n",y);
 return 0;
}
int reverse(int x)
{
 int z;
 z=0;
 do{
  z=z*10+x%10;
  x/=10;
 }
 while(x!=0);
  return z;

}

 

 

 这次的程序编写比前面的都有难度,主要是加入了一个调用函数,调用函数就是把主函数中的一个变量用另一个函数来调用,以此来达到调用函数目的,我学习到了调用函数的作用,虽然不是很熟练,但我一定会努力练习,很好的掌握它。

posted @ 2019-05-28 18:31  祁晓虎  阅读(455)  评论(1编辑  收藏  举报