第四次实验报告

函数与宏定义实验报告

姓名:石寿南  实验地点:一教522   实验时间:5月27日

一.实验目的与要求

<1>掌握函数的定义方法和调用规则;
<2>掌握在C语言程序中主调函数和被调用函数之间进行数据传递的规则;
<3>了解函数的返回值及其类型,并正确使用它;
<4>了解局部变量和全局变量的作用域及它们与存储分类的关系,理解变量的存在性和可见性的概念;
<5>练习递归函数的使用;
<6>理解宏的概念,掌握定义无参宏和带参宏的方法。了解文件包含的概念,掌握其用法;
<7>理解内部函数和外部函数,了解外部函数的编译和连接方法。

二.实验内容

1.实验6.3

#include<stdio.h>
#include<math.h>
float area(float a,float b,float c )
{
    float s,p,area;
    s=(a+b+c)/2;
    p=s*(s-a)*(s-b)*(s-c);
    area=sqrt(p); 
    return(area);
}
main()
{
    float a,b,c,ts;
    printf("请输入三角形的三边:\n",a,b,c);
    scanf("%f %f %f",&a,&b,&c);
    ts=area(a,b,c);
    if(a+b>c&&b+c>a&&a+c>b)
    printf("area=%f\n",ts);
    else 
    printf("Data error!");
}

2.实验6.5

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

3.实验6.5

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

4.实验6.6

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

三、辗转相除法

辗转相除法, 又名欧几里德算法,是求两个正整数之最大公约数的算法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。 另一种求两数的最大公约数的方法是更相减损法。

四、实验小结

1;在打代码的时候还是不够注意大小写的区分。
2;要好好理解流程图的含义,流程图是打代码很重要的一部分。

 
posted @ 2021-06-08 19:33  ~葬~  阅读(49)  评论(1编辑  收藏  举报