C语言程序设计实验五
C程序设计实验报告
姓名:冷梦龙
实验地点:家
实验时间:2020年4月26日
一、实验项目
6.3.1-1 求三角形面积
6.3.1-2 求阶乘
6.3.1-3 求最大公约数
6.3.1-4 打印三角形
6.3.2-1 500以内的亲密数对
6.3.3-1 x^y次幂
6.3.3-2 计算学生年龄(选做)
二、实验目的与要求实验项目
1.熟练地掌握函数的定义方法和调用规则
2.掌握在C语言程序中主调函数和被调用函数之间进行数据传递的规则
3.了解函数的返回值及其类型,并正确使用它
4.了解局部变量和全局变量的作用域及它们与存储分类的关系,理解变量的存在性和可见性的概念
5.练习递归函数的使用
三、实验内容
1、实验练习:6.3.1-1 求三角形面积
问题的简单描述:编写程序,从键盘输人三角形的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("请输入三角形的三条边:"); scanf("%f,%f,%f",&a,&b,&c); ts=area(a,b,c); if(a+b>c&&a+c>b&&b+c>a) printf("area=%f\n",ts); else printf("data error!"); }
问题分析:刚开始逻辑运算符老是漏写一个,直到编译运行时才发现,应该是不够熟练,花费时间不够多
2、实验练习:6.3.1-2 求阶乘
问题的简单描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传回主调函数并输出。
#include<stdio.h> #define N 5 //定义符号常量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); } }
问题分析:偶尔中英文忘记转换导致某些符号错误
3、实验练习:6.3.1-3 求最大公约数
问题的简单描述:编写程序,从键盘输人两个整数,调用gcd()函数求它们的最大公约数,并输出结果
#include<stdio.h> int gcd(int a,int b) { int temp; int remainder; if(a<b) { temp=b; b=a;//交换a和b的值 a=temp; } remainder=a%b; while(remainder!=0) { a=b; b=remainder; remainder=a%b; } return b; } main() { int x,y; int fac; printf("Please input two integers:"); scanf("%d,%d",&x,&y); fac=gcd(x,y); printf("The great common divisor is %d",fac); }
问题分析:对辗转相除和gcd()函数还是有点陌生
4、实验练习:6.3.1-4 打印三角形
问题的简单描述:输入整数n,输出高度为n的等边三角形。
#include<stdio.h> void trangle(int n) { int i,j,k; for(i=0;i<=n;i++) { for( j=i;j<n;j++) printf(" "); for ( k=1;k<=(2*i-1);k++) printf("*"); putchar('\n'); } } main() { int n; printf("请输入一个整数:"); scanf("%d",&n); printf("\n"); trangle(n); }
问题分析:对putchar()函数的不够熟悉
5、实验练习:6.3.2-1 500以内的亲密数对
问题的简单描述:若正整数A的所有因子( 包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数。求出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=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\n",m,n); m++; } }
问题分析:无
6、实验练习:6.3.3-1 x^y次幂
问题的简单描述:编写程序,分别从键盘输人数据x和y,计算x的y次幂并输出。
#include"stdio.h" long getpower(int x,int y) { if(y==1) return x; else y=x*getpower(x,y-1); } main() { int num,power; long answer; printf("请输入一个数;"); scanf("%d",&num); printf("请输入幂次方;"); scanf("%d",&power); answer=getpower(num,power); printf("%d^%d=%ld\n",num,power,answer); }
问题分析:基本没啥问题,但是有一点需要注意,就是为防止数据过大造成无法显示,在定义结果变量时应为长整型。
7、实验练习:6.3.3-2 计算学生年龄(选做)
问题的简单描述:已知第一位学生年龄最小为10岁,其余学生一个比另一个大两岁,求第五位学生的年龄。
#include<stdio.h> int age(int n) { int c; if(n==1) c=10; else c=age(n-1)+2; return c; } main() { int n=5,c; c=age(n); printf("%d",c); }
问题分析:这道题只需要运用递归思想对算法进行简化就行了
实验总结:
这次实验让我发现了很多问题,自己在C语言的路还长,需要一步步打好基础,容不得一点松懈,今后,我要以更加严谨的态度去对待这一门学科。
原文地址:https://www.cnblogs.com/LML0220/p/12781677.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android采用消息推送实现类似微信视频接听
- Android BottomSheet实现可拉伸控件
- Android自定义RecyclerView实现不固定刻度的刻度尺
- Android RIL使用详解
- 详解Android aidl的使用方法
- Android 进度条自动前进效果的实现代码
- Android 系统服务TelecomService启动过程原理分析
- Android圆角头像工具类详解
- Android实现系统消息推送
- Android仿微信QQ聊天顶起输入法不顶起标题栏的问题
- Android实现倒计时的按钮效果
- 腾讯位置服务实现轨迹回放
- 有一种遗憾,是跑程序却没用上_______
- Android使用注解代替枚举节省系统内存开销的方法
- Android实现自定义验证码输入框效果(实例代码)