ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第四次实验报告

2021-06-07 20:35:54  阅读:160  来源: 互联网

标签:函数 area int float 实验 余数 实验报告 第四次


函数与宏定义实验报告

 

实验项目:

姓名:王星   实验地点:一教524 实验时间:2021.5.18

一.实验目的与要求

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

二.实验内容

1.实验练习:6.3.1实验2

1.1问题的简单描述:编写程序,求出从主调函数传来的数值i的阶乘值,然后将其传回主函数并输出。
1.2实验代码:

#include"stdio.h"
#define N 5
long function(int i)
{
    static long f=1;
    f=f*i;
    return f;
}
main()
{
    long product;
    int i;
    for(i=1; i<=N; i++)
    {
        product=function(i);
        printf("%d的阶乘是:%d\n",i,product);
    }.0 
2、实验练习:
#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(n);
    k=facsum(k);
    if(m==k&&m<=n)
    printf("%d%d\n",m,n);
    m++;
}
  }
3、实验练习:6.3实验4

3.1问题的简单描述:输入整数,输出高度为n的等边三角形。
3.2实验代码:

#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!");
}

 


3.3问题分析:通过这个代码对函数的调用认识更深。

4、实验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);
}

辗转相除法:

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

1.通过这次实验对函数概念的理解更加清楚;
2.对一些式子的计算掌握清楚;
3.对函数的调用通过实践更加了解;
4.并且对一些公式的运用也更加清楚;
5.掌握了定义函数的方法
6.对递归函数也有了一定的了解

五、近期个人学习小结

1.收获:通过C语言的理论课程和实验课程对C语言的了解逐步加深,从刚开始对代码的不熟悉和理解到现在对代码有了一定的认识,通过实验课了解到了更多的函数;
2.不足:打代码时会出现卡顿,对一些基本常识认识不深,有时还会因为自己的粗心而使代码运行错误;
3.在接下来的复习日子里打算先把课本知识熟悉一遍再看看以前打过的代码从而加深印象,并多加练习打代码                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           。

标签:函数,area,int,float,实验,余数,实验报告,第四次
来源: https://www.cnblogs.com/wangxung/p/14860414.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有