C程序设计实验报告
一、实验项目:
1、编写由三角形三边求面积的函数
2、编写求N阶乘的函数
3、求两个整数的最大公约数
4、打印输出三角形
5、求500以内的所有亲密数对

姓名:廖云福 实验地点:教学楼514教室  实验时间:2019.4.30
一、实验目的与要求
1.编写由三角形三边求面积的函数

调用area()函数求三角形的面积;
在求面积函数中运用海伦公式;
2.编写求N的阶层

定义符号常量;
使用长整型变量存放累乘积;
在函数中,使用局部静态变量存放累乘积;
使用全局变量存放累乘积;
3.求两个整数的最大公约数

调用gcd()函数求两个整数的最大公约数;
掌握辗转相除法求两个整数的最大公约数;
4.打印输出的指定图形

调用trangle()函数输出三角形;
在trangle()函数中用for循环的嵌套输出指定的结果;
5.模块化程序设计

掌握C语言中定义函数的方法;
掌握通过值传递调用函数的方法。
二、实验内容
1、编写由三角形三边求面积的函数
问题的简单描述:编写程序,从键盘输入三角形的3条边,调用三角形函数求出其面积,并输出结果。流程图如下:
实验代码

#include<math.h>
#include<stdio.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 x,y,z,ts;printf("请输入三角形的3条边;\n");/*键盘输入三角形的3条边*/ scanf("%f%f%f",&x,&y,&z);ts=area(x,y,z);/*调用求三角形面积的函数*/ if((x>0)&&(y>0)&&(z>0)&&((x+y)>z)&&((x+z)>y)&&((y+z)>x))/*判断是否构成三角形*/ printf("area=%f\n",ts);else printf("data error!");}

程序运行如下
2、编写求N阶乘的函数
问题的简单描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传出主调函数并输出。流程图如下:
实验代码

#include"stdio.h"
int 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\n",i,product);/*输出*/ }}

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

实验代码

#include<stdio.h>
int gcd(int a,int b)
{int temp;int remainder;if(a<b){temp=a;a=b;b=temp;/*交换a和b的值*/ }remainder=a%b;while(remainder!=0){a=b;b=remainder;/*辗转相除求最大公约数*/break;}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、打印输出指定图形
问题的简单描述:输入整数n,输出高度为n的等边三角形。流程图如下:
实验代码

#include<stdio.h>
void trangle(int n)
{int i,j;for(i=0;i<n;i++){for (j=i;j<n;j++)/*打印每一行的空格*/printf(" ");for (j=0;j<=2*i;j++)/*打印每一行的*号*/printf("*");putchar('\n'); }
}
main()
{int n;printf("请输入一个整数;");/*提示输入一个整数*/ scanf("%d",&n);/*输入整数*/ printf("\n");trangle(n );/*调用函数打印出等边三角形*/
}

程序运行结果
5、求500以内的所有亲密数对
.问题的简单描述:若正整数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以内的所有的亲密数对。流程图如下:
实验代码

#include<stdio.h>
int facsum(int m)
{int sum=1,f=2;while(f<=m/2){if(m%f==0)sum=sum+f;f++;}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\n",m,n);m++;}
}

程序运行结果

转载于:https://www.cnblogs.com/lyf152977/p/10809636.html

第六章实验报告(函数和宏定义实验)相关推荐

  1. c语言第七章函数实验总结,第六章 实验报告 (函数与宏定义)

    c语言实验报告 实验项目: 1.编写由三角形三边求面积的函数 2.编写求N的阶层 3.求两个整数的最大公约数 4.打印输出的指定图形 5.模块化程序设计 姓名:张顺利实验地点:第一教学楼514教室   ...

  2. c语言实验报告函数和宏定义,第六章 实验报告(函数与宏定义)

    ##C程序设计实验报告 ###一.实验项目: 1.编写由三角形三边求面积的函数 2.编写求N阶乘的函数 3.求两个整数的最大公约数 4.打印输出三角形 5.求500以内的所有亲密数对 ##姓名:戴求  ...

  3. 第六章函数与宏定义实验报告(后半部分)

    实验项目:函数与宏定义实验报告 姓名:谢丽萍     实验地点:514教室       实验时间:2019 5.16 一.实验目的与要求 1.利用复化梯形公式计算定积分 ①掌握c语言中定义函数的方法 ...

  4. 用c语言写复化梯形积分公式,第六章 函数和宏定义实验(2)

    C程序设计实验报告 姓名:童飞    实验地点:教学楼514教室    实验时间:5月16日 实验项目: 1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数 ...

  5. c语言编写计算ackerman函数的递归函数ack(n,x,y),第六章函数与宏定义实验报告二...

    C程序设计实验报告 实验项目: 6.4.2.2. 利用复化梯形公式计算定积分 6.4.2.3. 计算Ackerman函数 6.4.3.1. 编写计算x的y次幂的递归函数getpower(int x,i ...

  6. c语言复化求积公式程序,第六章 函数与宏定义实验2

    C程序设计实验报告 实验项目: 一.模块化程序设计 1.利用复化梯形公式计算定积分. 2.计算Ackerman函数. 二. 函数的递归调用 1.编程计算x的y次幂的递归函数getpower(int x ...

  7. 复化梯形c语言计算定积分,第六章 函数和宏定义实验(2)

    1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数getpower(int x,int y),并在主程序中实现输入输出 4.编写计算学生年龄的递归函数 5. ...

  8. 第六章实验报告(函数与宏定义)

    实验项目:函数和宏定义实验 姓名:谢丽萍    试验地点:教学楼514教室    实验地点:2019 年4月30日 一.实验目的与要求 1.掌握函数的定义方法和调用规则 2.掌握在c语言程序中主调函数 ...

  9. c语言第六次实验报告,第一年C语言实验报告6列

    成都理工大学计算机工程学院"编程基础"实验报告 1. 实验目的 (1)精通一维数组. 二维数组的定义,初始化以及输入和输出方法(2)掌握字符数组和字符串函数的使用(3)掌握与数组有 ...

最新文章

  1. 在虚拟机上安装XP系统
  2. [洛谷P4735]最大异或和
  3. 亚马逊aws 服务器删除_AWS推出Apache Airflow全托管工作流MWAA
  4. cf570 D. Tree Requests
  5. 保护导师,从我做起;爱护博导,人人有责
  6. matplotlib安装失败_Python | 安装中遇到“0x80072f7d 未指定的错误”
  7. URL传递中文参数乱码问题
  8. bash的算术运算和条件测试语句
  9. PostgreSQL-13-缺失值处理
  10. springboot的学习笔记,这个很重要
  11. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_4_Junit_@Before@After...
  12. Matlab文件IO操作函数,fgetl和textscan介绍以及使用时可能遇到的问题
  13. mysql 存正负数_mysql 存储负数
  14. [网络安全学习篇64]:业务安全
  15. 新旧骗术揭秘:防止5G时代的电信诈骗
  16. asp.net小区物业管理系统
  17. iOS14隐私适配:根据不同的场景需求设置不同的定位精确度
  18. apk自行修改后的操作(软件安装不了,安了打不开,闪退)
  19. 聚观早报|苹果默认不再接受隔空投送;Mete被裁员工将获薪水补偿
  20. 社交媒体中有哪些有趣的数据?能挖掘出哪些价值?

热门文章

  1. 春节期间小游戏同时在线人数最高达2800万人/小时
  2. 180118 有趣的人工智能对话小程序
  3. 秒懂数据类型的真谛—Python基础前传(4)
  4. strcpy与strcat函数原型
  5. 201706问题记录
  6. HDU 1217 Arbitrage (Floyd + SPFA判环)
  7. Linux 命令[2]:mkdir
  8. Eclipse中部分快捷键
  9. 好久没敲代码了(强行补上今天的博客。。。)
  10. 如何实现线程间的通讯(转载)