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

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

    #include<stdio.h>
    int isprime(int n);
    int main()
    {
        int m,n,i;
        for(m=0,i=2;i<=1000;i++)
        {
            if(isprime(i))
            {
                printf("%3d   ",i);
                m++;
                if(m%10==0)
            {
                printf("
    ");
            }
            }
        }
        printf("%d",m);
    }
    int isprime(int n)
    {
        int ia;
        for(ia=n-1;ia>=2;ia--)
        {
            if(n%ia==0)
            {
                return 0;
            }
         } 
         return 1;
    }

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

    #include<stdio.h>
    int m;
    int gcd(int a,int b);
    int lcm(int a,int b);
    int main()
    {
        int x,y,n;
        scanf("%d %d",&x,&y);
        m=gcd(x,y);
        if(gcd(x,y))
        {
            n=x*y; 
            printf("没有公约数,最小公倍数为%d
    ",n);
        }
        else
        {
            n=lcm(x,y);
            printf("最大公约数为%d,最小公倍数为%d
    ",m,n);
        }
    }
    int gcd(int a,int b)
    {
        int ii,ia;
        for(ii=a;ii>=1;ii--)
        {
            if(a%ii==0&&b%ii==0)
            {
                return ii;
            }
        }
        return 0;
    }
    int lcm(int a,int b)
    {
        int i=1;
        while(1)
        {
            if(i%a==0&&i%b==0)
            {
                break;
            }
            else
            {
                i=i*m;
            }
        }
        return i;
    }

    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 y3;
        int x,y1,y2;
        scanf("%d",&x);
        y1=fun(x);
        y2=fun(x+15);
        y3=fun(sin(x));
        printf("y1=%d,y2=%d,y3=%lf",y1,y2,y3);
    }
    double fun(double x)
    {
        double i;
        i=x*x-5*x+4;
        return i;
    }

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

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

    二、知识点总结

    1、函数声明只是告诉程序“我有这个函数”,而程序的反应是“我知道了,帮你看看”,只有在写这个函数时这个函数才真正具有内容。

    2、调用函数,可以在任何时候,其方式因函数种类而异。个人认为分两种,及自定义函数的调用和非自定义函数的调用。

    3、形参即“模板位置”,实参为“实际内容”,运算时实参被传递到形参代表的“模具位置”进行运算。

    4、全局(外部)变量应声明于所运用的函数之前。

    三、实验总结

    1、火柴问题中,要注意将“多对一”的问题交给switch解决,switch很难解决这种情况下的“一对多”问题。

    2、实验二中的全局变量实际多余......

  • 相关阅读:
    C#里边的控件缩写大全(比较规范)
    jQuery的一些备忘
    有趣的史实~
    值类型 VS 引用类型~
    一道笔试题和UML思想 ~
    数据绑定以及Container.DataItem几种方式与用法分析
    用户控件与自定义控件的异同
    .NET资源站点汇总~
    C#中抽象类和接口的区别
    弹出窗口的一些东西(一),备忘~
  • 原文地址:https://www.cnblogs.com/wxc123/p/6083047.html
Copyright © 2011-2022 走看看