• 第七次作业


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

    #include<stdio.h>
    int isprime(int n);
    int main()
    {
        int i,d=0;
        for(i=2;i<=1000;i++)
        {
            if(isprime(i))
            {
                printf("%3d ",i);
                d++;
                if(d%10==0)
                    printf("
    ");
            }
        }
        printf("1000以内素数一共有%d个。
    ",d);
        return 0;
    }
    int isprime(int n)
    {
        int a;
        for(a=2;a<=n-1;a++)
        {
            if(n%a==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 num1,num2;
        printf("请输入两个正整数,用空格隔开。
    ");
        scanf("%d%d",&num1,&num2);
        while(num1<=0||num2<=0)
        {
            printf("输入错误,请重新输入。
    ");
            scanf("%d%d",&num1,&num2);
        }
        printf("最大公约数为%d,最小公倍数为%d。
    ",gcd(num1,num2),lcm(num1,num2));
    }
    int gcd(int a,int b)
    {
        int x,c;
        if(b>a)
        {
            x=b;
            b=a;
            a=x;
        }
        while(1)
        {
            c=a%b;
            if(c==0)
            {
                break;
            }
            a=b;
            b=c;
        }
        return b;
    }
    int lcm(int a,int b)
    {    int d;
        d=gcd(a,b);
        return (a*b/d);
    }

    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 x,y2,y3;
        printf("x*x-5*x+4,请输入x的值。
    ");
        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.用函数实现:火柴棍等式问题。

    #include<stdio.h>
    int number(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(number(a)+number(b)+number(c)==12)
            {
                printf("%d+%d=%d
    ",a,b,c);
            }
        }
        return 0;
    }
    int number(int a)
    {
        int A;
        switch(a)
        {
        case 0:
        case 6:
        case 9:A=6;break;
        case 1:A=2;break;
        case 2:
        case 3:
        case 5:A=5;break;
        case 4:A=4;break;
        case 7:A=3;break;
        case 8:A=7;break;
        }
        return A;
    }

      二、知识点总结

    1.函数定义的基本格式:

    函数类型(函数返回值类型 缺省int型 无分返回值void) 函数名--(合法标示符)(形参类型说明表)

    {

            说明部分

            语句部分   ----函数体

    }

    函数定义和函数原型(声明)的区别:

    (1)函数的返回语句形式

                return(表达式);或return 表达式;

    (2)函数中可以有多个return语句

    2. 函数的调用方式

    (1)函数无返回值时,单独作为一个函数调用语句

    (2)函数又返回值时,可放到一个赋值表达式语句中;还可放到一个函数调用语句中,作为另一个函数的参数

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

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

    三、实验总结(实验中遇到的问题及解决方法)

    1.声明函数后面丢掉了分号,导致错误;

    2.多个case可以公用一组执行语句,可以使程序更简单

  • 相关阅读:
    arguments伪对象数组 javascript
    typeof获取变量的数据类型 javascript
    《转》Cucumber之一Cucumber概述——学习新篇章
    【转】Dubbo分布式服务框架
    SQL语句
    (转)面试必备之乐观锁与悲观锁
    多线程的实现方式
    Exception和RuntimeException区别
    实例化对象的两种方式
    包装类对象的比较
  • 原文地址:https://www.cnblogs.com/-lyf/p/6081800.html
Copyright © 2020-2023  润新知