C语言作业07

问题|回答
😐:-😐-:
这个作业属于哪个课程|C语言程序设计ll
这个作业要求在哪|https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9930
我在这个课程的目标是|掌握switch的用法,能熟悉的打出相应要求的代码,并能解析自己的代码。
这个作业在哪个具体方面帮助我实现目标|PTA作业,以及思考的过程和自学的过程。
参考文献|《C语言程序设计》编程网站Codecademy。

PTA实验作业

1.1题目7-12

题目描述:本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为E。

1.1.1数据处理

数据表达:定义了N,a,score三个变量和A,B,C,D,E五个五分制成绩。score为分数,N为学生人数。
数据处理:运用了for循环结构和switch结构。

伪代码:

int N,score,a(定义变量),
输入学生数
int A=0,B=0,C=0,D=0,E=0;(定义五分制成绩变量)
for(a=1;a<=N;a++)(运用循环结构累加各阶段的学生数。)
输入学生百分制成绩
score=score/10(只能得出整数,为使用switch语句做准备)
switch(score)
case10和case9:A++;跳出语句;
case8:B++;跳出语句;(以此类推的语句组c++,D++,E++)
最后输出A,B.C,D,E的累加人数值。
return 0;

1.1.2实验代码截图

1.1.3造测试数据

输入数据 输出数据 说明
4 65 85 42 98 1 1 0 1 1 分数小于80大于等于70为C阶段且无一人
3 21 33 55 0 0 0 0 3 分数小于60的为E阶段且有三人
2 100 90 2 0 0 0 0 分数在A阶段的有两人
1 80 0 1 0 0 0 在B阶段的有一人

1.1.4PTA提交列表及说明


1.编译错误:score=score/10;后面没打;
2.编译错误:有个break;后的分号打成冒号。
3.编程错误:没打case5,case4等误认为defalut可以替代。
4.答案错误:没给A,B,C,D,E赋值。

1.2题目7-10

题目描述:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

1.2.1数据处理

数据表达:先定义三个变量z,x,m分别代表年,月,日。再定义两个变量a,b分别代表二月的天数和天数
数据处理:用到了if-else语句进行闰年的判断进而确定二月的天数,和switch语句

伪代码:

int z,x,m;(定义年月日的变量)
输出年月日,
int a,b;(定义二月天数变量和天数变量)
if(该年年份能被4整除但不能被100整除、或者能被400整除的为闰年)
a=29;(是闰年)
else
a=28;(非闰年)
switch(x)(x为月数)
case 1:b=m;break;
case 1:b=m;跳出语句
case 2:b=m+31;跳出语句
case 3:b=m+31+a;跳出语句
case 4:b=m+62+a;跳出语句(b=当月天数+前几个月天数)
(以此类推)
default:printf("fault");(当输入x不在其中时就输出fault,并跳出语句。
最后输出天数d。

1.2.2实验代码截图

1.2.3造测试数据

输入 输出 说明
2018/01/20 20 闰年和非闰年输出结果相同
2000/03/1 61 闰年
2001/03/1 60 非闰年
2002/13/25 fault 输入超过范围

1.2.4PTA提交列表及说明

1.编译错误:((z%40&&z%100!=0)||(z%4000))少了个大括号。
2.部分正确:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除,这些输出条件误认为只要用其中一个就可以。(这是出现三个部分正确的的根本原因。)
3.编译错误:最后一个break后面没打分号。

2代码互评

同学代码1
同学代码2
自己代码
代码对比:
1.对于同学1我的显得更简单,但对于同学2的虽说代码长度看起来差不多,但是我的方法显得更笨。
2.同学1将闰年和非闰年分别用了一次,而我只用了一次。
3.对于同学2他用了sum求和用电脑在为他算天数,而我的显得落后很多,计算的天数大都是人脑算的。
4.同学1的代码比我的看起来更易懂,同学二的其次。
5.同学2代码运用数组给人带来更方便。

3. 学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码数 学到的知识点简介 目前比较迷惑的问题
7/10.9-7/10.11 13小时 90 代码的逻辑顺序的运用,以及{}的运用及要求 PTA编译错误与答案错误时怎么从代码输出中查看错误?
8/10.16-8/10.18 15小时 121 for语句循环计算 "sum="与“sum = "的区别。
9/10.23-9/10.26 12 120 学会了说明函数,调用函数,学会了const修饰符。
10/10.30-10/11.2 15 156 学会了分支结构,更加熟悉if-else语句,用%02d:%02d输出两位小时数 if-else与for循环混和使用不太会。
11/11.6-11/11.8 12小时 145 利于switch语句处理多分支选择问题 switch语句分支结构和for循环的衔接不太会。

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

1.这周学习了新的分支结构,但是让我收获很多。
2.做题时发现switch不像上可是那样简单,但自己搜了才知道,这可真的是靠自学。
3.做题时发现用switch()和条件衔接不是很好,但查考同学代码之后发现和自己的完全不同,这大概就是自学的弊端吧。
4.最后还是那句编程之路任重而道远。

posted on 2019-11-08 19:46  永~~途  阅读(171)  评论(0编辑  收藏  举报

导航