第七次作业

一,

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

代码:

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

第七次作业

二,

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

代码:

#include<stdio.h>
int gcd(int a,int b);
int gcd(int a,int b)
{
    int x,y;
    if(b>a)
    {
        x=b,b=a;a=x;
    }
    while((y=a%b)!=0)
    {
        a=b;
        b=y;
    }
    return b;
}
int lcm(int a,int b);
int lcm(int a,int b)
{
    int c;
    c=(a*b)/gcd(a,b);
    return c;
}
int main() 
{
    int a,b,c,d;
    printf("请输入两个正整数,用逗号隔开\n");
    scanf("%d,%d",&a,&b);
    c=gcd(a,b);
    printf("这两个正整数的最大公约数为%d\n",c);
    d=lcm(a,b);
    printf("这两个正整数的最小公倍数为%d\n",d);
    return 0;
}

第七次作业

三,

实验要求:

编写一个函数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    

代码:

# include <stdio.h>
# include <math.h>
float fun (double x);
float fun (double x)
{
  float y;
  y=x*x-5*x+4;
  return y;
 }
int main()
{
   float x,y,z,a,b,c;
   printf ("请输入x的值\n");
   scanf ("%f",&x);
   y=x+15;
   z=sin(x);
   a=fun(x);
   b=fun(y);
   c=fun(z);
   printf ("%f,%f,%f\n",a,b,c);
}

第七次作业

四,

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

代码:

#include<stdio.h>
int huochai(int n);
int huochai(int n)
{
     switch(n)
    {
        case 0:case 6:case 9:n=6;break;
        case 2:case 3:case 5:n=5;break;
        case 4:n=4;break;
        case 1:n=2;break;
        case 7:n=3;break;
        case 8:n=7;break;
    }
    return n;
}
int main()
{
    int n1,n2,n3;
    for(n1=0;n1<=9;n1++)
        for(n2=0;n2<=9;n2++)
        {
            n3=n1+n2;
            if(n3>9)
            {
                break;
            }
            if(12==huochai(n1)+huochai(n2)+huochai(n3))
            {
                printf("%d+%d=%d\n",n1,n2,n3);
            }
        }
            return 0;
}

第七次作业

知识点总结

一,void没有返回值

二,注意返回值

实验总结

一,函数前面没有函数类型默认为int类型