zoukankan      html  css  js  c++  java
  • 第六章实验报告

    C程序设计实验报告

    实验项目:

    1、编写由三角形三边求面积的函数
    2、编写求N阶乘的函数
    3、求两个整数的最大公约数
    4、打印输出三角形
    5、求500以内的所有亲密数对

    姓名:刘健斌   实验地点:教室514   实验时间:04.30

    一、实验目的与要求

    1.编写由三角形三边求面积的函数

    • 调用area()函数求三角形的面积;
    • 在求面积函数中运用海伦公式;

    2.编写求N的阶层

    • 定义符号常量;
    • 使用长整型变量存放累乘积;
    • 在函数中,使用局部静态变量存放累乘积;
    • 使用全局变量存放累乘积;

    3.求两个整数的最大公约数

    • 调用gcd()函数求两个整数的最大公约数;
    • 掌握辗转相除法求两个整数的最大公约数;

    4.打印输出的指定图形

    • 调用trangle()函数输出三角形;
    • 在trangle()函数中用for循环的嵌套输出指定的结果;

    5.模块化程序设计

    • 掌握C语言中定义函数的方法;
    • 掌握通过值传递调用函数的方法。

    二、实验内容

    6.4.1.1、实验练习:

    1、问题的简单描述:编写程序,从键盘输入三角形的3条边,调用三角形函数求出其面积,并输出结果。

    2、流程图:

    3、实验代码:

    #include<stdio.h>
    #include<math.h>
    float area(float a,float b,float c)
    {
        float s,p,area;
        p=(a+b+c)/2;
        s=p*(p-a)*(p-b)*(p-c);/*根据海伦公式求三角形面积*/ 
        area=sqrt(s);
        return(area);
        
    } 
    main()
    {
        float x,y,z,ts;
        printf("请输入三角形的三条边:"); 
        scanf("%f%f%f",&x,&y,&z);/*键盘输入三角形的3条边*/ 
        ts=area(x,y,z);/*调用求三角形面积函数*/ 
        if(x+y>=z&&x+z>=y&&y+z>=x)/*判断是否构成三角形*/ 
            printf("area=%f
    ",ts);
        else
            printf("data error!");
    }

    输出:

    4、问题分析:无

    6.4.1.2、实验练习:

    1、问题的简单描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传出主调函数并输出。

    2、流程图:

    3、实验代码:

    #include<stdio.h>
    #define N 5/*定义符号常量N,代表数字5*/ 
    long function(int i)
    {
        static long f=1;/*定义局部静态变量f并赋初值1*/ 
        f=f*i; /*求形参i的阶乘值并存放在f中*/ 
        return f;
    }
    main()
    {
        long product;
        int i;
        for(i=1;i<=N;i++)
        {
            product=function(i);/*调用函数function()求阶乘值,并赋值给product*/ 
            printf("%d的阶乘是:%d
    ",i,product);
        }
    }

    输出:

    4、问题分析:无

    6.4.1.3、实验练习:

    1、问题的简单描述:编写程序,从键盘输入两个整数,调用gcd()函数求它们的最大公约数,并输出结果。

    2、流程图:

    3、实验代码:

    #include<stdio.h>
    int gcd(int a,int b)
    {
        int temp;
        int remainder;
        if(a<b)
        {
            temp=b;
            b=a;
            a=temp;
        }
        remainder=a%b;
        while(remainder!=0)
        {
            a=b;
            b=remainder;
            remainder=a%b;
        }
        return b;
    }
    main()
    {
        int x,y;
        int fac;
        printf("请输入两位数:");
        scanf("%d%d",&x,&y);
        fac=gcd(x,y);
        printf("The great common divisor is:%d",fac);
    }

    输出:

    4、问题分析:无

    6.4.1.4、实验练习:

    1、问题的简单描述:输入整数n,输出高度为n的等边三角形。

    2、流程图:

    3、实验代码:

    #include<stdio.h>
    void trangle(int n)
    {
        int i,j;
        for (i=0;i<=n;i++)
        {
            for(j=1;j<=n-i;j++)
            printf(" ");
            for(j=1;j<=2*i-1;j++)
            printf("*");
            putchar('
    ');
        }
    }
    main()
    {
        int n;
        printf("请输入一个整数:");
        scanf("%d",&n); 
        printf("
    ");
        trangle(n);
    }

    输出:

    4、问题分析:无

    6.4.2.1、实验练习:

    1、问题的简单描述:若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数。例如,6的因子之和为1+2+3=6,因此6与6为一对亲密数(即6自身构成一对亲密数);又如,220的因子之和为1+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与284为一对亲密数。
    求500以内的所有的亲密数对。

    2、流程图:

    3、实验代码:

    #include<stdio.h>
    int facsum(int m)
    {
        int sum=1,f=2;
        while(f<=m/2)
        {
            if(m%f==0)
            {
                sum=sum+f;
            }
            f=f+1;
        }
        return sum;
    }
    main(){
        int m=3,n,k;
        while(m<=500)
        {
            n=facsum(m);
            k=facsum(n);
            if(m==k&&m<=n)
            {
                printf("%d,%d
    ",m,n);
            }
            m++;
        }
    }

    输出:

    4、问题分析:无

    三、实验小结

    1、要注意各个变量的属性,到底是整形还是浮点型。

    2、通过这次实验,我使用函数的能力明显变强了。使用函数需要给函数声明、定义和调用,缺一不可。

  • 相关阅读:
    toj 2975 Encription
    poj 1797 Heavy Transportation
    toj 2971 Rotating Numbers
    zoj 2281 Way to Freedom
    toj 2483 Nasty Hacks
    toj 2972 MOVING DHAKA
    toj 2696 Collecting Beepers
    toj 2970 Hackle Number
    toj 2485 Card Tric
    js页面定位,相关几个属性
  • 原文地址:https://www.cnblogs.com/strongest/p/10797872.html
Copyright © 2011-2022 走看看