C语言I作业06

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9886
我在这个课程的目标是 精通c语言
这个作业在那个具体方面帮助我实现目标 学会了用函数结构简化数学问题,优化程序运行
参考文献 c语言程序设计

C语言I作业06_第1张图片

1.PTA实验作业(20分/题)

从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:

1.1 题目名1

7-4 统计学生平均成绩与及格人数 (15 分)
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:
按照以下格式输出:

average = 成绩均值
count = 及格人数
其中平均值精确到小数点后一位。

输入样例:
5
77 54 92 73 60
输出样例:
average = 71.2
count = 4

1.1.1数据处理

本题输入的数据为n,s,count,average,i,以及数组a【1000】;
此处数组的中【】里的数字是多少,那么设置的变量就有多少,由于我们并不知道需要多少变量,所以我们可以把数字稍微输入大一些,而数组的变动,靠的是另一个变量i在for循环中的改变,并在改变的同时scanf变量,这里是主要难点,其他地方就比较简单了。

1.1.2实验代码截图

C语言I作业06_第2张图片

1.1.3 造测试数据

输入数据 输出数据 说明
0 average = 0.0 count = 0 n=0;
5 77 54 92 73 60 average = 71.2 count = 4 题目数据
1 60 average = 60.0 count = 1 n=1

1.1.4 PTA提交列表及说明

编译错误:由于是先在vs2019上编译的,所以scanf写的是scanf_s
解决方法:去掉_s
部分正确:没有考虑n=0的情况
解决方法:将n=0的情况插入进去即可解决

1.2 题目2

7-7 龟兔赛跑 (20 分)
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?

输入格式:
输入在一行中给出比赛时间T(分钟)。

输出格式:
在一行中输出比赛的结果:乌龟赢输出@@,兔子赢输出^^,平局则输出-_-;后跟1空格,再输出胜利者跑完的距离。

输入样例:
242
输出样例:
@_@ 726

1.2.1 数据处理

设置两个变量x(兔子)y(王八)分别代表它们的路程,本题主要的难点就在于最后的时间不足10分钟的处理方法,所以用if语句将两种情况分开并计算,然后按照路程输出不同结果,用i表示时间自己的改变,当T-i<10便跳出循环,再用T-i计算剩下的路程。

1.2.2 实验代码截图

C语言I作业06_第3张图片

C语言I作业06_第4张图片

1.2.3 造测试数据

输入数据 输出数据 说明
242 @_@ 726 题目数据
6 ^_^ 54 T<10
10 ^_^ 90 T=10

1.2.4 PTA提交列表及说明

编译错误:依然是scanf_s的问题,同上题
部分正确:是因为我第一个for循环结构的break条件写在了下面,导致循环过程先执行了一次,因此出现了时间T小于10的情况也当做等于10来算了
解决方法:将for循环的break条件提到了循环过程的上面

2.代码互评(5分)

找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。

同学代码截图

同学1

C语言I作业06_第5张图片

C语言I作业06_第6张图片

同学2

C语言I作业06_第7张图片

自己代码截图

C语言I作业06_第8张图片

C语言I作业06_第9张图片

本题我才用的是for循环,而第一个同学用的是while循环,对比之后我发现while循环的效果要好一些,因为循环条件只需要一个就够了,我的for循环多了两个除了占位置而没有
任何作用的条件,这是我值得修改的地方;
第二个同学加入了很多注释,增强了可读性,值得我学习

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 2h 72 输出 对于输出的符号还不熟
第二周 3.5h 57 计算 算法陌生
第三周 3.5h 81 分支结构 分支的逻辑理不清
第四周 1.5h 180 for循环,+= 终止条件理不清
第五周 2h 600 函数结构 对于算法的处理比较迷惑
第六周 2h 1000 多分支嵌套结构 怎么才能把嵌套写的有条理

3.2 累积代码行和博客字数(5分)

C语言I作业06_第10张图片

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

C语言I作业06_第11张图片

3.3.2 学习体会

本周对于所学知识的使用感觉有了一种渐入佳境的feel,本周的挑战竟然也会有一种不过如此的感觉(感觉自己好飘啊hhh,说实话,上周的挑战题我觉得难度大些),
这几次做题最大的感受就是老师太坏了(我喜欢),每次题目都会用到我们还没学的知识,比如上次的break和这次的数组,但是每次的新知识是由自己发现的话,
确实会有一股特别的兴奋感,很不巧,何学姐拿着我的号把第二,三题用我还没学过的知识简洁写出来,还嘲讽了我并跟我说不教我那些符号是什么意思,在此,我将
自己用神器百度将其解决(各位一定要学会活用搜索引擎解决问题,不要总想着靠别人,不然得到提升的不是你,而是别人)

C语言I作业06_第12张图片

C语言I作业06_第13张图片
来吧各位,对比自己的代码,运用搜索引擎,将新知识收入囊中吧!

你可能感兴趣的:(C语言I作业06)