C语言I博客作业07
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9933 |
我在这个课程的目标是 | 很好的编写程序,提高自己的准确率和速度 |
这个作业在那个具体方面帮助我实现目标 | 通过PTA上的代码作业让我发现自己的错误并不断改正 |
参考文献 | C语言程序设计,CSDN编程社区 |
一、PTA实验作业
我的排名
1.1 计算天数
- 本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
输入样例1:
2009/03/02
输出样例1:
61
输入样例2:
2000/03/02
输出样例2:
62
1.1.1数据处理
- 数据表达:变量“y,m,d,day”;变量值的来源“赋值运算,算术运算”;变量类型“都是整型变量int”
- 数据处理:表达式“case 1:day+=d;break;....case 12:day+=334+d;break;”;流程结构“分支结构”
1.1.2实验代码截图
1.1.3造测试数据
输入 | 输出 | 说明 |
---|---|---|
2009/03/02 | 61 | 代码可运行输出正确答案 |
2048/05/24 | 145 | 2048为闰年,5月24日是这一年的第145天 |
2079/01/01 | 1 | 表示的是这一年的第一天 |
2022/12/30 | 364 | 表示这一年的等364天 |
1.1.4PTA提交及列表
- 1.部分正确:题目要求年月日的输入方式为年/月/日;改正方法:将scanf("%d%d%d",&y,&m,&d)改为scanf("%d/%d/%d",&y,&m,&d)
- 2.答案错误:没有考虑到不管是闰年还是平年二月之前的天数都相同;改正方法:在if-elae语句中在加一个判断月份是否大于二月
- 3.编译错误:else后面的语句忘记打分号了;改正方法:在语句的后面加“;”
- 4.答案错误:忘记把闰年的年份考虑进去;改正方法:在switch语句之前加一个if-else语句作为闰年的判断条件
2.1 统计学生成绩
- 本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
2.1.1数据处理
- 数据表达:变量“N,i,k,A,B,C,D,E,scoer”;变量值来源“赋值运算,算数运算”;变量类型“scoer为浮点型变量double;其它都是整型int”
- 数据处理:表达式“case 9:case 10:A++;break; case 8:B++;break; case 7:C++;break; case 6:D++;break; case 5:case 4:case 3:case 2:case 1:case 0:E++;break;”流程类型“分支机构”
2.1.2实验代码截图
2.1.3造测试数据
输入 | 输出 | 说明 |
---|---|---|
7 77 54 92 73 60 65 69 | 1 0 2 3 1 | 于题目给出示例相同,表明程序可以得出正确答案 |
5 3 100 94 60 88 | 2 1 0 1 1 | A等级有2人,B等级有1人,C等级0人,D E等级各1人 |
10 24 59 34 86 19 76 72 91 82 62 | 1 2 2 1 4 | A等级1人,B C等级各2人,D等级1人,E等级4人 |
2 100 93 | 1 0 0 0 0 | A等级2人,B C D E等级都为0人 |
2.1.4PTA提交列表及说明
- 1.部分正确:少考虑了只有几分的情况;改正方法:在switch语句中再加有个case 0:
- 2.答案错误:在输出A,B,C,D,E的语句中字母的位置反来;改正方法:将它们的位置互换一下
- 3.编译错误:switch后面括号只可以是整型变量或者是字符型变量而我加了浮点型变量;改正方法:在定义一个变量来表示条件
- 4.编译错误:有些地方的单词字母位置反了;改正方法:把字母换回来
二、代码互评
同学1代码
我的代码
- 1.这为同学先是写了switch语句对题目要求的数值进行计算在判断是否满足条件,而我则是先判断在执行switch语句,这样使的代码会简短一些
- 2.这位同学switch语句用的是一个表达式,而我用了三个switch语句分别计算,这样可以使代码更清楚,容易理解
同学2代码
我的代码
- 1.这位同学是先对输入的年月日计算是该年的第几天在判断是否为闰年在进行闰年日期的计算,我是先判断是否为闰年在对输入的年月日进行计算
- 2.这位同学运用了字符来进行年月日格式的输入,我这是直接在输入中加/来表示格式,因此又学到了字符的一种用法
三、学习总结
3.1学习进度条
|周/日期|这周所花时间|代码行|学到的知识点的简介|目前比较迷茫的问题|
|------|------|------|------|------|------|
|7/4-7/8|22小时|114行|运用switch语句对给定的题目要求进行计算|一些switch语句的用法不是很了解|
3.2累积代码行和博客数
3.3学习内容总结和感悟
- 3.3.1学习内容总结
- 3.3.2学习体会
- 通过这个礼拜的学习,发现了自己的一些问题,对于书本不够熟悉,一些基础的东西还不太记得,然后它们的用法也不是特别熟练,但我也发现这次在做PTA时对与空格和没有打空格的问题少了许多,有一种在语句结束时要打分号的习惯了,基本上没有编译错误的情况了,但是对于答案错误和部分正确我很多时候只能是无奈,因为不知道是哪里错了。