zoukankan      html  css  js  c++  java
  • 第七次实验作业

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

    #include<stdio.h>
    int isprime(int n);
    int main()
    {
        int i,k=0;
        for(i=2;i<=1000;i++)
        {
            if(isprime(i))
            {
                k++;
                printf("%4d",i);
                if(k%10==0)
                {
                    printf("
    ");
                }
            }
        }
        printf("一共有%d个素数",k);
        return 0;
    }
    int isprime(int n)
    {
        int i;
        for(i=2;i<=n-1;i++)
        {
            if(n%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,y,z;
        printf("请输入两个正整数
    ");
        scanf("%d%d",&a,&b);
        if(a<0||b<0)
        {
            printf("error");
        }
        else
        {
            y=gcd(a,b);
            z=lcm(a,b);
        }
        printf("两个正整数的最大公约数是%d
    ",y);
        printf("两个正整数的最大公倍数是%d
    ",z);    
        return 0;
    }
    int gcd(int a,int b)
    {
        int i,m;
        for(m=a;m>1;m--)
        for(i=b;i>1;i--)
        {
            if(a%m==0&&b%i==0&&m==i)
                return m;
        }
    }
    int lcm(int a,int b)
    {
        int c;
        c=a*b/gcd(a,b);
        return c;
    }

     

       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>
    double fun(double x);
    int main()
    {
        double x,y1,y2,y3;
        printf("请输入x的值
    ");
        scanf("%lf",&x);
        y1=fun(2);
        y2=fun(x+15);
        y3=fun(sin(x));
        printf("%lf %lf %lf
    ",y1,y2,y3);
        return 0;
    }
    double fun(double x)
    {
        double y;
        y=x*x-5*x+4;
        return y;
    }

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

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

    知识点总结:

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

    2.C程序的逻辑结构

       (1)一个C程序是由一个或多个源程序文件组成.

       (2)一个源程序文件由一个或多个函数组成。

       (3)可把每个函数看作一个模块。

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

    4.若函数类型与return语句中表达式值得类型不一样,按前者为准,自动转换。

    5.函数声明一般写在调用它的函数前面。

    6.函数原型的目的是为了告诉编译器这个函数长什么样。

    实验总结:

    1.函数参数的数目和顺序,及各参数意义和类型。

    2.函数返回意义和类型。

    3.需要使用的包含文件。

    4.函数声明时,函数首部以分号结尾。

  • 相关阅读:
    HDU2586 How far away?(tarjan的LCA)
    You Raise Me Up
    POJ2891 Strange Way to Express Integers(中国剩余定理)
    POJ2142 The Balance(扩展欧几里得)
    HDU 1166模仿大牛写的线段树
    NetWord Dinic
    HDU 1754 线段树裸题
    hdu1394 Minimum Inversion Number
    hdu2795 Billboard
    【完全版】线段树
  • 原文地址:https://www.cnblogs.com/wy97/p/6067276.html
Copyright © 2011-2022 走看看