C语言程序设计第一次作业

C语言程序设计第一次作业

标签(空格分隔): C语言


不知不觉间,我们的大学生活已经过到第5周了。我们也已经学习了一些内容,其中 Raptor 在第一周的课程中尤其重要,它能让我们熟悉顺序结构、循环结构、选择结构,为我们今后的编程奠定基础。


(一)实验总结

1.求圆面积和周长

1.题目

输入圆的半径,计算圆的周长和面积

2.流程图

题目一

3.测试数据及运行结果

捕获2.PNG-155kB半径为5,周长为31.4159,面积为78.5398。
捕获3.PNG-161.6kB半径为10,周长为62.83,面积为314.16。
捕获4.PNG-168.5kB半径为12,周长为75.39,面积为452.39。

4.实验分析

这个第一个问题相较于后面的题相对较基础,遇到的问题会相应少一些。

问题一:不知道pi代表π或无法弄清楚算法的运算顺序。
在遇到这种情况时可以用()将一些运算括起来来使程序更易看。


2.判断闰年

1.题目

输入一个四位年份,判断其是否是闰年。闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。

2.流程图

捕获5.PNG-82kB

3.测试数据及运行结果

捕获6.PNG-157.9kB2017年不是闰年
7.PNG-163.7kB2008年是闰年
8.PNG-168.9kB2012年是闰年

4.实验分析

问题一:这一题我的程序相较其他人更累赘。并没有将条件放在一个判断框中,使用了更多的计算数。
原因分析:没有敢于使用 or and 语句。更好的选择是把y mod 4 和y mod 100,使用or来连接。

问题二:我在刚开始时未能明白取余的格式,写成了mod(y/4)这样的格式,在向教师提问后才明白了使用方法。


3.求所有闰年

1.题目

求所有闰年

2.流程图

1.PNG-129.1kB

3.测试数据及运行结构

本题与前两题不同,不需要测试多组数据。一次运算结果就可以将问题全部显露出来。
2.PNG-184.1kB

4.实验分析

问题一:因为我是从上一题的结果中修改过来成本题的,所以计算所需的运算数达到了241次。改进方法与上一题相同。
问题二:在总控台中输出的不够直观。可以修改为只输出闰年,也可以在句子前显示年份,如“2017 is not a leap year”


4.判断有多少天

1.题目

修改第2题,输入年份和月份,判断该月有多少天。

2.流程图

4.判断有多少天

3.测试数据及运行结构

2017年2月
2017.2.PNG-176.4kB
2008年2月
2008.2.PNG-186.6kB
2017年1月
2017.1.PNG-201.8kB
2017年4月
2017.4.PNG-209kB

4.实验分析

问题一:我先前一直纠结于先判断年还是先判断月。但是从复杂程度上,先判断月比先判断年更优秀。2月是特殊的,而1,3,5,7,8,10,12月则和4,6,9,11月可以在一个判断语句中实现判断。


5.猜数游戏

1.题目

程序随机产生一个100以内的整数,用户输入猜的数字,只能猜一次,判断是否猜对了, 如果猜错了,则说明猜大了还是猜小了。

2.流程图

5.PNG-161kB
第五和第六题更加相似,而第二、三、四题更相似。
第五题是否简便会对第六题的思路有很大的影响

3.测试数据及运行结构

猜50:
50.PNG-175.8kB
猜75:
75.PNG-186kB

4.实验分析

问题一:随着课件老师给出了100以内随机数的函数,使这已经不是一个问题。而程序也只需要两个判断语句就可以实现。只要注意格式就不会出现问题。


6.猜数游戏扩展

1.题目

修改第5题,用户最多可以猜10次,如果猜对了,输出猜对的次数,如果10次都没猜对,输出正确答案。

2.流程图

6.PNG-175.1kB

3.测试数据及运行结构

第一次猜测:
测试1.PNG-190.9kB
第二次猜测:测试2.PNG-204.4kB

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;
    

赵晓辉的博客地址

posted @ 2017-10-13 22:46  人满为患  阅读(675)  评论(0编辑  收藏  举报