C语言I博客作业07

一、本周教学内容&目标

第3章 分支结构 3.3 使学生熟悉多分支结构switch语句的使用

二、本周作业

问题 答案
这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9934
我在这个课程的目标是 掌握并熟练用代码解决实际问题
这个作业在哪个具体方面帮助我实现目标 重复写代码,运用多种语句,例如lf-else语句,for语句,switch语句
参考文献 C语言程序设计I和习题实验指导书,QQ浏览器

三、本周作业

1.PTA实验作业

请在此处列出自己的排名图片

1.1题目

本题要求编写程序计算某年某月某日是该年中的第几天。 输入格式: 输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。 输出格式: 在一行输出日期是该年中的第几天。

  • 1.1.1 数据处理
    数据表达:首先对年月日分别定义为整型变量,因题目后面需要求和,故要定义整型求和变量,再是赋值求和sum=0,利用各语句循环,最后输出。
    数据处理:该题运用了三种重要语句,for语句、if语句、switch语句,例如 i=1;i
  • 1.1.2 实验代码截图
    C语言I博客作业07_第1张图片

  • 1.1.3 造测试数据

输入数据 输出数据 说明
2009/03/02 61 不能被4整除,也不能被100整除,所以不是闰年
2000/08/05 218 既能被4整除,也能被100整除,所以也不是闰年
2002/02/19 50 不能被4整除,也不能被100整除,所以不是闰年
2018/07/03 184 不能被4整除,也不能被100整除,所以不是闰年
2016/05/04 125 能被4整除,但不能被100整除,所以是闰年
  • 1.1.4 PTA提交列表及说明

    说明:a1 编译错误:switch后面不需要打大括号,将大括号去掉。 a2 答案错误:知道i=1,就以为month大于等于1,实则不要等于1,将等于去掉。

1.2题目

本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。 输入格式: 输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。 输出格式: 在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

  • 1.2.1 数据处理
    数据表达:首先分别定义题目中给出的A,B,C,D,E,均为整型变量,然后再整型定义变量正整数N和分数score和求和sum,其次是对A,B,C,D,E分别赋值0,最后在for语句和switch语句之后输出。
    数据处理:此题灵活运用了for语句和switch语句,例如for(i=1;i<=n;i++)和switch(sum),其中for循环语句中利用了表达式,即sum=score/10,最后运用switch语句依次分情况break,最后输出。

  • 1.2.2 实验代码截图
    C语言I博客作业07_第2张图片

  • 1.2.3 造测试数据

输入数据 输出数据 说明
4 65 74 44 99 1 0 1 1 1 五分制成绩为A,C,D,E的人数均为1人
5 77 89 91 65 79 1 1 2 1 0 五分制成绩为A,B,D的人数均为1人,而得C的有2人
6 78 55 76 89 91 71 1 1 3 0 1 五分制成绩为A,B,E的人数均为1人,而得C的有3人
7 77 54 92 73 60 65 69 1 0 2 3 1 五分制成绩为A,D的人数均为1人,C的人数为两人,E的人数为3人
8 65 74 83 92 81 67 84 74 1 3 2 2 0 五分制成绩为A的只有1人,C,D均为2人,B为3人
  • 1.2.4 PTA提交列表及说明
    C语言I博客作业07_第3张图片
    说明: a1 部分错误:忘在for循环语句中加大括号,加上大括号 a2 编译错误:以第一个题目出发,当时switch后面并没有打大括号,而此题没有打大括号显示的是编译错误,应把大括号加起来。

2.代码互评

2.1模板一

C语言I博客作业07_第4张图片
差异:1.定义变量的字母差异,该同学是用单字母直接替代年月日,而我是用年月日的单词替代,比较好一点,因为这样有利于我们的英语学习。 2.我比这位同学多定义了i,从而多出了一个for循环语句,复杂化了。 3.后面表示sum,我是用sum+day的形式,而该同学是总数形式,我觉得我的代码更加易懂。

2.2模板二

C语言I博客作业07_第5张图片
差异:1.前面定义的变量基本上是一样的,但他分开了两部分,而我是一起一次性定义。 2.我比他多定义了一个sum,而他是直接用score/10来表示。 3.他的switch语句是从a到e,而我是e到a,并且对于e的条件显得非常复杂,而他直接用default,简单化了。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 4/h 150 学会了输入输出字符 如何去定义和运用Markdown格式
第二周 12/h 300 知道定义变量和表格的制作及Markdown格式的运用 运算符怎么输入
第三周 15/h 396 学会了折线图的制作和lf-else语句的运用及多种运算符的使用 怎样才能使输入代码更加简便,有没有惯用的
第四周 13/h 350 for的循环结构 各种情况下各种变量的灵活运用
第五周 12/h 370 用代码输入生成乘方表和阶乘表 不知道该定义多少个量
第六周 16/h 400 字符型数据类型和逻辑与关系运算符 做了PTA上面的几个编程题,感觉有的题目自己看不懂,不知道如何写表达式
第七周 9/h 310 多支结构switch语句 不知道该对谁应用switch语句,题目意思转化成代码不知如何表达

3.2 累积代码行和博客字

C语言I博客作业07_第6张图片

3.3 学习内容总结和感悟

3.3.1学习内容总结

C语言I博客作业07_第7张图片

3.3.2学习体会

我觉得在解决问题上面,一个清晰的思路是非常重要的,就拿这次作业代码来讲,看起来是很容易看懂的,写起来也没有之前的那么吃力,但一开始你就要有一个清晰的思路,一步一步解决问题,在这里,可能有好多同学说自己题目看不懂,我就是,但只要自己认真看,认真省,一句一句去剖析题目,相信最后能够看懂题目,并利用所学知识将题目解答出来。

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