首页 > 代码库 > 作业7

作业7

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

#include <stdio.h>
int isprime(int x);
int main()
{ 
int x,i=0;

for(x=2;x<=1000;x++)
{
if(isprime(x))
{
printf ("%3d   ",x);
i++;


if(i%10==0)

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

技术分享

 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\n 请输入x的值。\n");
    scanf("%lf",&x);
    y1=fun(x);
    y2=fun(x+15);
    y3=fun(sin(x));
    printf("%.3lf  %.3lf  %.3lf",y1,y2,y3);
}
double fun(double x)
{
    double y;
    y=x*x-5*x+4;
    return y; 
}

技术分享

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

#include <stdio.h>
int tiao(int a);
int main()
{
    int a,b,c,x,y,z;
    for(a=0;a<=9;a=a+1)
    {
        x=tiao(a);
        for(b=0;b<=9;b=b+1)
        {
            y=tiao(b);
            for(c=0;c<=9;c=c+1)
            {    
                z=tiao(c);
                if(a+b==c&&x+y+z==12)
                {
                    printf("%d+%d=%d\n",a,b,c); 
                }
            }
        }
    }
    return 0;    
}
int tiao(int a)
{
if(a==1)
{
return 2;
}
if(a==2&&a==3&&a==5)
{
return 5;
}
if(a==4)
{
return 4;
}
if(a==6&&a==9&&a==0)
{
return 6;
}
if(a==7)
{
return 3;
}
if(a==8)
{
return 7;
}
}

技术分享

实验知识点总结:

1.循环语句for的格式。

2.循环语句while的格式。

3.嵌套语句的使用 ,连续使用两种循环 ,和循环和if语句的连用。

4.函数的应用。

实验总结:

1.许多地方都要注意字母的中英文,尤其是输入完汉字之后总是会输入全角的英文,导致最后找错很麻烦。

2.尤其要注意空格的使用 比如输出字符后面,输入字符后边 少输入空格到最后的找错也不太容易。

3.注意等于和赋值的区别 。

4.语句的使用要注意分号的使用 ,还有大括号的使用。还要注意执行的返回 ,是否结束。

5.有的程序比如第四个程序就不太明白为什么有空格就不行。

6.注意嵌套的方式以及跳出循环的位置.

7.注意题目的限制条件

8.注意括号的使用 在很多时候程序错误就是因为括号没扩对。

作业7