首页 > 代码库 > 第七次作业

第七次作业

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

#include<stdio.h>
int isprime(int k);
int isprime(int k)
{
    int i;
    for(i=2;i<=k-1;i++)
    {

        if(k%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int i,x,k;
    x=0;
    for(i=2;i<=1000;i++)
    {
        if(isprime(i))
        {
            x=x+1;
            printf("%4d",i);
            if(x%10==0)
            {
                printf("\n");
            }
        }
    
    }    
    printf("一共有%d个质数\n",x);

    return 0;
}

技术分享

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

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int gcd(int a,int b);
int lcm(int a,int b);
int main()
{
    int a,b,m,n;
    printf("请输入两个整数\n");
    scanf("%d,%d",&a,&b);
    m=gcd(a,b);
    n=lcm(a,b);
    printf("%d,%d",m,n);
    return 0;
}
int gcd(int a,int b)
{
    int i;
    do
    {
        i=a%b;
        a=b;
        b=i;
    }while(i!=0);
        return a;
}

int lcm(int a,int b)
{
    int f;
    f=a*b/gcd(a,b);
    return f;
}

技术分享

3.编写一个函数fun(double x)求表达式x2-5x+4的值,x作为参数传给函数。在主函数中调用该函数求下列式子的值:

#include<stdio.h>
#include<math.h>
double fun(double n);
double fun(double n)
{
    double m;
    m=n*n-5*n+4;
    return m;
}
int main()
{
    double i,j,k,n;
    printf("请输入n\n");
    scanf("%lf",&n);
    i=fun(2);
    j=fun(n+15);
    k=fun(sin(n));
    printf("当i=%lf,n=%lf时,j=%lf,k=%lf",i,n,j,k);
    return 0;
}

技术分享

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

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

技术分享

实验总结:

函数,在前面应定要加一个主函数

do   while的while后面有一个;

用switch的时候,如果结果是相同的,可以写到一起,只写一个

函数,要看清,到底要返回的是什么

不要忘了,在主函数中要定义变量

 

知识总结:

函数名

{

声明部分

语句部分

}

 

合法标示符:字母,数字,下划线

函数的返回类型:缺省int 型,无返回值void型

函数体是由大括号括起来的语句序列,用于完成函数要实现的功能

第七次作业