• 第七次作业


    一、实验内容

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

    代码:

    #include<stdio.h>
    int isprime(int x);
    int main()
    {
        int i,n=0;
        for(i=1;i<=1000;i++)
        {
            if(isprime(i)==1)
            {
                printf("%4d",i);
                n++;
                if(n%10==0)
                {
                    printf("
    ");
                }
            }
        }
        printf("
    ");
        printf("一共有%d个素数
    ",n);
        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 ged(int m,int n);
    int lcm(int m,int n);
    int main()
    {
        int a,b,m,n;
        printf("请输入两个整数:
    ");
        scanf("%d%d",&a,&b);
        m=ged(a,b);
        n=lcm(a,b);
        printf("最大公约数是%d,最小公倍数是%d
    ",m,n);
        return 0;
    }
    int ged(int m,int n)
    {
        int c1;
        if(m==n)
            c1=m;
        else
        {
            while(m!=n)
            {
                if(m>n)
                    m=m-n;
                else
                    n=n-m;
            }
            c1=m;
        }
        return c1;
    }
    int lcm(int m,int n)
    {
        int c2;
        c2=m*n/ged(m,n);
        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>
    double fun(double x);
    int main()
    {
        int y1;
        double y2,y3,x;
        printf("请输入一个值:
    ");
        scanf("%lf",&x);
        y1=fun(2);
        y2=fun(x+15);
        y3=fun(sin(x));
        printf("y1=%d,x=%lf时,y2=%.2lf,y3=%.6lf
    ",y1,x,y2,y3); 
    return 0;    
    }
    double fun(double x)
    {
        double y;
        y=x*x-5*x+4;
        return y;
    }

    程序运行结果:

    4、实验要求:用函数实现:火柴棍等式问题。

     有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。

     注意:  1. 加号与等号各自需要两根火柴棍    2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上。

    代码:

    # include <stdio.h>
    int change(int n);      
    int main()
    {
        int a,b,c,x,y,z,m;
        for(x=0;x<=9;x++)
        {
            a=change(x);
            for(y=0;y<=9;y++)
            {
                b=change(y);
                z=x+y;
                c=change(z);
                if(a+b+c==12&&c<=9)
                {
                    printf("%d+%d=%d
    ",x,y,z);
                }
            }
        }
    }
    int change(int n)
    {
        int m;
            if(n==1)
            {
                m=2;
            }
            else if(n==2||n==3||n==5)
            {
                m=5;
            }
            else if(n==4)
            {
                m=4;
            }
            else if(n==6||n==9||n==0)
            {
                m=6;
            }
            else if(n==7)
            {
                m=3;
            }
            else
            {
                m=7;
            }    
    return m;        
    }

    程序运行结果:

    二、知识点总结:
    1、函数的返回值一般是通过return语句返回到主调函数的;

    2、参数传递是单向传递的;

    3、函数不能嵌套;

    4、调用函数:

    ①、实参表可以包含多个实参,各参数间用逗号隔开,实参可以是常量、变量,表达式;

    ②、如果是调用无参函数,则“实参表”可以为空,但括弧不能省略;

    ③、实参与形参的个数应相等,类型应一致;

    三、实验总结

    1、一般情况下,函数中不能有输入输出的语句;

    2、函数声明前要加分号;

    3、函数中return语句中注意返回哪个值;

  • 相关阅读:
    核函数矩阵为什么要是positive semidefinite的
    Autoencoders
    Statistics与Machine Learning有什么区别
    [zz]Using SyncTeX with LaTeX
    Metric Learning的一个疑惑
    [zz]Latex中texworks编辑器正向反向跳转搜索
    [zz]Python3.x新特性
    LyX 2.0.5中文排版
    function
    多行文字结尾显示省略号
  • 原文地址:https://www.cnblogs.com/zhao-1184346113/p/6067896.html
Copyright © 2020-2023  润新知