C语言I博客作业07
C语言I博客作业07
这个作业属于哪个课程? | C语言程序设计I |
---|---|
这个作业要求在哪里? | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9934 |
我在这个课程的目标是 | 计算机中级执照 |
这个作业在哪个具体方面帮助我实现目标? | 学习c语言编程是最基础的一课,是为后面所学做好铺垫。属于打基础一块。 |
参考文献 | 《C语言程序设计》,《C Primer Plus》等。 |
1.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, number分别表示年,月,日以及天数;
数据处理:(y % 4 == 0&&y % 100 != 0)||(y % 400 == 0)来计算闰年,通过人工计算天数来完成switch结构(太繁琐了,而且易出错);
1.1.2实验代码截图
1.1.3 造测试数据
|||
|:--|:--|:--|
|输入数据|输出数据|说明|
|2009/03/02|61|由题目提供|
|2003/01/25|25|表示为2003年的第25天|
1.1.4 PTA提交列表及说明
- 答案错误:由于for的大括号没有将switch语句包裹起来导致的。
- 答案正确:。。。
1.2统计学生成绩
本题要求编写程序读入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
1.2.1 数据处理
数据表达:A,B,C,D,E分别代表各位同学的学习成绩等级,n等于输入的数
数据处理:for (i = 0; i < n; i++)。switch(a[i])。
1.2.2 实验代码截图
1.2.3 造测试数据
|||
|:--|:--|:--|
|输入数据|输出数据|说明|
|7 77 54 92 73 60 65 69|1 0 2 3 1|题目提供|
|5 74 73 89 92 100 |2 1 2 0 0|由成绩等级划分|
1.2.4 PTA提交列表及说明
- 部分正确:没有将switch加入到for的大括号里。
- 答案正确:。。。
2.代码互评
同学的代码
我自己的作业
- 1我自己的代码是直接将结果计算出来。
- 2而同学所写是直接利用公式来得到结果。
- 3相较而知,他的代码更加工整美观,而我定义的代码太繁琐了。
同学的代码
自己的作业
- 1.我的代码与他的相比太多了,忘记用defatul的运用了。
- 2.他定义的变量更加具体清楚。值得我的学习。
3.学习总结
本周学习了switch语句,我个人觉得这个比if-else语句要复杂要难。可能是我还没找到方法吧,使用熟练度也不高,导致这次作业写了很久,说实话事倍功半很累。而且一定要多多练习才能熟悉。
3.1 学习进度条
周/日期 | 这周花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
第五周 | 8小时 | 五十行 | hello world等一些简单的编译 | 暂无 |
第六周 | 8小时 | 八十行 | 通过编译来进行华氏度与摄氏度的转换 | 暂无 |
第七周 | 12小时 | 一百三十行 | 学习了if else,定义一部分数学函数 | 忽略scanf的返回值 |
第八周 | 13小时 | 一百五十行 | 学习了for格式 | 暂无 |
第九周 | 13小时 | 一百五十行 | 学习了while格式 | 对于定义函数仍然有些搞不懂 |
第十周 | 14小时 | 一百七十行 | 学习了字符型变量——char | 无法灵活的运用取余 |
第十一周 | 14小时 | 一百九十行 | 学习了switch语句 | switch语句 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
对于switch语句要能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。switch()的参数类型不能为实型 。
case标签必须是常量表达式。如42或者'4'。switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。如果表达式的值匹配其中的某个 case 常量,程序流就会跳转到该 case 标签后
面的语句。如果没有匹配的 case 常量,程序流就会跳转到 default 标签后的语句(如果存在 default 标签)