• 第七次作业


      1. 定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)

    # include <stdio.h>
    int isprime (int x);
    int main ()
    {
        int i,x,d;
        d=0;
        for (i=2;i<=1000;i++)
        {
          if(isprime(i))
          {
            printf("% 3d",i);
            d++;
          }
        }
        
        if(d%10==0)
        {
           printf("
    ");
        }
        printf ("总数为%d个。
    ",d);
        return 0;
    } 
    int isprime (int x)
    {
        int i;
        for(i=2;i<=x-1;i++)
        {
            if(x%i==0)
            return 0;
        }
        return 1;
    }

        2.求两个正整数的最大公约数和最小公倍数。用一个函数gcd(int a,int b)求最大公约数,另一个函数lcm(int a,int b)根据求出的最大公约数求最小公倍数。

    # include <stdio.h>
    int gcd (int a,int b);
    int lcm (int a,int b);
    int main ()
    {
        int a,b,c1,c2;
        printf ("请输入两个正整数
    ");
        scanf("%d %d",&a,&b);
        if (a<=0||b<=0)
        {
           printf ("error!
    ");
        }
        else 
        {
            c1=gcd(a,b);
            c2=lcm(a,b);
            printf ("最大公约数是%d,最小公倍数是%d",c1,c2);
        }
        return 0;
    }
        int gcd (int a,int b)
        {
          int c1,d;
          if (a==b)
          {
             c1=a;
          }
          else if (a>b)
          {
            while(d!=0)
            {
                 d=a%b;
                 a=b;
                 b=d;
                 c1=a;
            }
          }
          else if (a<b)
          {
            while(d!=0)
            {
                 d=b%a;
                 b=a;
                 a=d;
                 c1=b;
            }
         }
            return c1;
        }
    
        int lcm (int a,int b)
        {
          int c2;
          c2=a*b/gcd(a,b);
          return c2;
        }

     

       3.编写一个函数fun(double x)求表达式x2-5x+4的值,x作为参数传给函数。在主函数中调用该函数求下列式子的值:

           y1= 22-5*2+4

           y2= (x+15)2-5*(x+15)+4

           y3= sin2x-5*sinx+4    

       求y3用数学函数 sin(x)  头文件math.h

       求解y2和y3时需要输入x的值。

       样例:

       y1=-2, x=0.5时,y2=166.75,y3=1.832721

    # include <stdio.h>
    # include <math.h>
    float fun (double n);
    int main()
    {
       float n,y1,y2,y3;
       printf ("请输入x的值");
       scanf ("%f",&n);
       y1=fun(n);
       y2=fun(n+15);
       y3=fun(sin(n));
       printf ("%.3f %.3f %.3f",y1,y2,y3);
    }
    float fun (double n)
    {
      float y;
      y=n*n-5*n+4;
      return y;
     }

    4.用函数实现:火柴棍等式问题。

    # include <stdio.h>
    int number (int x);
    int main ()
    {
     int x,z,w;
     for (x=0;x<=9;x++)
     for (z=0;z<=9;z++)
     {
        w=z+x;
        if(w>9)
        {
           break;
        }
         if(number(x)+number(z)+number(w)==12)
        {
           printf("%d+%d=%d
    ",x,z,w);
        }
     }
     return 0;
    }
    int number (int x)
    {
      int Y;
      switch(x)
      {
      case 1:Y=2;break;
      case 0:
      case 6:
      case 9:Y=6;break;
      case 2:
      case 3:
      case 5:Y=5;break;
      case 4:Y=4;break;
      case 7:Y=3;break;
      case 8:Y=7;break;
      }
      return Y;
    }

    二 知识点总结:

    1.函数的定义:函数是一段程序,接收零个或多个参数,实现一个功能,并返回零个或一个值。

    2.一个源程序文件由一个或多个函数组成

    3.函数定义一般格式:

    函数类型 函数名(形参类型说明表) { 说明部分 语句部分 }

    4.C语言不允许在函数体内嵌套定义函数

    5.void  max (void)

    第一个 void 表示无返回值省略默认为int,第二个void表示无参数可省略

    6.一般情况下,函数中不应有输入输出的语句

    7.函数的返回语句

    (1)形式: return(表达式); 或 return 表达式;(2) 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数(3) 说明: 1.>函数中可有多个return语句 2>若无return语句,遇}时,自动返回调用函数 3>若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换4> void型函数

    8.调用形式 函数名(实参表),()起到了表示函数调用的重要作用, 即使没有参数也需要()

    9.调用方式:

    函数无返回值时,单独作为一个函数调用语句函数有返回值时,可放到一个 赋值表达式语句中, 还可放到一个 函数调用语句 中,作为另一个函数的参数

    10.函数原型采用复制粘贴函数首部然后加分号的方法

    11.函数的定义出现在函数调用之前时可以不用给出函数原型,但良好的编程习惯是在程序开头给出所有的函数原型。

    12.形式参数:定义函数时函数名后面括号中的变量名

    实际参数:调用函数时函数名后面括号中的表达式

    三.实验总结:

    1.自定义函数和主函数不在同一个大括号内

    2.第2题在写是要思路清晰,否则可能形成死循环

  • 相关阅读:
    Slf4j与log4j及log4j2、logbak的关系及使用方法
    Swagger
    C#解析json的两种方式
    akka java
    JAVA协程 纤程 与Quasar 框架
    Java 终于在 Java 8 中引入了 Lambda 表达式。也称之为闭包或者匿名函数。
    Deep Learning(深度学习)相关网站
    Deep Learning(深度学习)学习笔记整理系列之(八)
    Deep Learning(深度学习)学习笔记整理系列之(七)
    Deep Learning(深度学习)学习笔记整理系列之(六)
  • 原文地址:https://www.cnblogs.com/wei-1249700655/p/6067729.html
Copyright © 2020-2023  润新知