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

    1.题目:

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

    代码:

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

      运行结果:

    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,e;
      printf(" 请输入两个整数,用,隔开
    ");
     scanf("%d,%d",&a,&b);
     while(a<=0||b<=0)
     {
       printf("输入错误
    ");
       scanf("%d,%d",&a,&b);
     }
    
    c=gcd(a,b);
    d=lcm(a,b);
     printf("最大公约数%d,最小公倍数%d
    ",c,d);
    }
    
     int gcd(int a,int b)
     {
       int c,d,e;
       if(b>a)
       {
         c=b;
    	 b=a;
    	 a=c;
       }
    
    
     while(b!=0)
     {
       e=a%b;
       a=b;b=e;
     }
    
    
     return a;
     }
    
     int lcm(int a,int b)
     {
       int i;
       i=a*b/gcd(a,b);
        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 x,y1,y2,y3;
    {
      printf("x*x-5*x+4
    输入x的值
    ");
    scanf("%lf",&x);
    y1=fun(x);
    y2=fun(x+15);
    y3=fun(sin(x));
    printf("%.2lf,%.2lf,%.2lf ",y1,y2,y3); } double fun(double x) { double y; y=x*x-5*x+4; return y; }

      运行结果:

    附加题:

    火柴棍问题。

    代码:

    #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.注意自己定义的变量;

    2.注意定义函数;

    3.printf前后没有{};

    4.学会简化程序;

    5.注意 int gcd(int a,int b);

            int lcm(int a,int b);

    函数的用法。

    知识点总结:

    1.标识符:字母、下划线、数字:

    2.clrscr() 清屏;

    3.大 变 小:strwr;小 变 大 :strupr:

    4.函数无返回值,单独作为一个函数调用语句;

    有返回值时,可放到一个赋值表达式语句;

    还可放到一个函数调用语句中,作为另一个函数的参数;

    5.代码的优化处理。

  • 相关阅读:
    c语言 数组名是常量指针
    c语言 动态数组
    c语言 指针的值
    c语言 &取地址运算符的理解
    c语言 指针与地址的区别
    c语言 指针与数组
    linux cheese摄像机工具在window电脑上显示
    C#实现简单的 Ping 的功能,用于测试网络是否已经联通
    c# 扫描局域网IP列表的几种方法
    c# 遍历局域网计算机(电脑)获取IP和计算机名称
  • 原文地址:https://www.cnblogs.com/haoran333/p/6067874.html
Copyright © 2011-2022 走看看