• 第七次作业


    一、实验内容

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

    #include <stdio.h>
    int isprime(int a);
    int main()
    {
        int i,n=0;
        for(i=2;i<=1000;i++)
        {
            if(isprime(i))
            {
                printf("%03d ",i);
                n++;
                if(n%10==0)
                {
                    printf("
    ");
                }
            }
        }
        printf("一共有%d个素数
    ",n);
    }
    int isprime(int a)
    {
        int j;
        for(j=2;j<=a-1;j++)
        {
            if(a%j==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,c,d;
        printf("请输入两个正整数,中间用空格隔开。
    ");
        scanf("%d%d",&a,&b);
        if(a<=0||b<=0)
        {
            printf("输入有误
    ");
        }
        else
        {
            c=gcd(a,b);
            d=lcm(a,b);
            printf("最大公约数为%d,
    最小公倍数为%d.
    ",c,d);
        }
        return 0;
    }
    int gcd(int a,int b)
    {
        int c;
        if(a<b)
        {
            c=a;
            a=b;
            b=c;
        }
        while(b!=0)
        {
            c=a%b;
            a=b;
            b=c;
        }
        return a;
    }
    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 a);
    int main()
    {
        double  a,y1,y2,y3;
        printf("题目;x*x-5*x+4
    请输入x的值
    ");
        scanf("%lf",&a);
        y1=fun(2);
        y2=fun(a+15);
        y3=fun(sin(a));
        printf("y1=%.3lf
    y2=%.3lf
    y3=%.3lf
    ",y1,y2,y3);
    }
    double fun(double a)
    {
        double y;
        y=a*a-5*a+4;
        return y; 
    }

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

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

    附加题不会,

    二、知识点总结

    1、函数定义不加“;”。

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

    3、自定义函数里的变量是独立的,和主函数里的变量没有关联。

    三、实验总结

    1、有关于数学的内容要灵活利用公式。

    2、定义类型与输入输出类型必须保持一致。

        

  • 相关阅读:
    redis 笔记04 服务器、复制
    redis 笔记03 RDB 持久化、AOF持久化、事件、客户端
    redis 笔记02 对象、数据库
    反射复习笔记02
    攻防世界 — Web进阶题(第11
    机器学习-极大似然和对数几率回归(浅入)
    redis的过期策略和内存淘汰
    Backbone.Router实践
    Spring Boot 数据访问
    Archives: 2018/12
  • 原文地址:https://www.cnblogs.com/li1252204077/p/6083416.html
Copyright © 2020-2023  润新知