C语言程序设计第一次作业
C语言程序设计第一次作业
标签(空格分隔): C语言
不知不觉间,我们的大学生活已经过到第5周了。我们也已经学习了一些内容,其中 Raptor 在第一周的课程中尤其重要,它能让我们熟悉顺序结构、循环结构、选择结构,为我们今后的编程奠定基础。
(一)实验总结
1.求圆面积和周长
1.题目
输入圆的半径,计算圆的周长和面积
2.流程图
3.测试数据及运行结果
半径为5,周长为31.4159,面积为78.5398。
半径为10,周长为62.83,面积为314.16。
半径为12,周长为75.39,面积为452.39。
4.实验分析
这个第一个问题相较于后面的题相对较基础,遇到的问题会相应少一些。
问题一:不知道pi代表π或无法弄清楚算法的运算顺序。
在遇到这种情况时可以用()将一些运算括起来来使程序更易看。
2.判断闰年
1.题目
输入一个四位年份,判断其是否是闰年。闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
2.流程图
3.测试数据及运行结果
2017年不是闰年
2008年是闰年
2012年是闰年
4.实验分析
问题一:这一题我的程序相较其他人更累赘。并没有将条件放在一个判断框中,使用了更多的计算数。
原因分析:没有敢于使用 or and 语句。更好的选择是把y mod 4 和y mod 100,使用or来连接。
问题二:我在刚开始时未能明白取余的格式,写成了mod(y/4)这样的格式,在向教师提问后才明白了使用方法。
3.求所有闰年
1.题目
求所有闰年
2.流程图
3.测试数据及运行结构
本题与前两题不同,不需要测试多组数据。一次运算结果就可以将问题全部显露出来。
4.实验分析
问题一:因为我是从上一题的结果中修改过来成本题的,所以计算所需的运算数达到了241次。改进方法与上一题相同。
问题二:在总控台中输出的不够直观。可以修改为只输出闰年,也可以在句子前显示年份,如“2017 is not a leap year”
4.判断有多少天
1.题目
修改第2题,输入年份和月份,判断该月有多少天。
2.流程图
3.测试数据及运行结构
2017年2月
2008年2月
2017年1月
2017年4月
4.实验分析
问题一:我先前一直纠结于先判断年还是先判断月。但是从复杂程度上,先判断月比先判断年更优秀。2月是特殊的,而1,3,5,7,8,10,12月则和4,6,9,11月可以在一个判断语句中实现判断。
5.猜数游戏
1.题目
程序随机产生一个100以内的整数,用户输入猜的数字,只能猜一次,判断是否猜对了, 如果猜错了,则说明猜大了还是猜小了。
2.流程图
第五和第六题更加相似,而第二、三、四题更相似。
第五题是否简便会对第六题的思路有很大的影响
3.测试数据及运行结构
猜50:
猜75:
4.实验分析
问题一:随着课件老师给出了100以内随机数的函数,使这已经不是一个问题。而程序也只需要两个判断语句就可以实现。只要注意格式就不会出现问题。
6.猜数游戏扩展
1.题目
修改第5题,用户最多可以猜10次,如果猜对了,输出猜对的次数,如果10次都没猜对,输出正确答案。
2.流程图
3.测试数据及运行结构
第一次猜测:
第二次猜测:
4.实验分析
问题一我的结构是一定出问题了,用n=n+100勉强结束了第一个循环,勉强完成了题目要求。但我不知道更简洁的流程图关键在哪里。
(二)结对编程总结
这第一次实验课,我是和赵晓辉同学一个组,两个人的力量超过一个人。
我们共同完成了c语言编译第一题。
//第一题:求圆的周长和面积。
#include <stdio.h>
#include <math.h>
int main(void)
{
float r = 0.0f,c = 0.0f,s = 0.0f;
coust double pi = 3.1415926535;
printf("请输入要计算的圆的半径")
scanf("%f",&r);
c = 2.0f * pi * r;
s = pi * pow(r,2);
printf("圆的周长是%f,面积是%f。\n",c,s);
return 0;