C语言I博客作业07
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言I作业07 |
我在这个课程的目标是 | 熟练运用switch语句 |
这个作业在那个具体方面帮助我实现目标 | 思考用switch语句地解题过程中,结合其他所学知识 |
参考文献 | 百度 |
1.PTA实验作业
1.1 计算天数 (15 分)
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
1.1.1数据处理
数据表达:定义了三个整形变量,year,month,day,分别代表年月日,接着用if-else和switch语句嵌套解题
数据处理:
Begin
输入 year/month/day
if year满足leap-year地条件
Enter switch(month)
case (1-12);break;
分别对应
else 进入common-year
Enter switch(month)
case(1-12);break;
一一对应
return 0;
Exit
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
2000/08/23 | 236 | 能被400整除地闰年 |
2019/08/23 | 235 | 平年 |
2004/08/23 | 236 | 能被4整除且不能被100整除地闰年 |
1900/08/23 | 235 | 能被100整除地平年 |
1.1.4 PTA提交列表及说明
编译错误 | 误将switch语句中地一个break后面的分号遗漏 |
答案错误 | 在做天数的加减法时把天数加错了 |
答案错误 | 能被400整除地闰年这个条件疏漏了 |
1.2 整数的分类处理 (20 分)
给定 N 个正整数,要求你从中得到下列三种计算结果:
A1 = 能被 3 整除的最大整数
A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
输出格式:
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。
1.2.1 数据处理
数据表达:定义了7个整型变量N,i,num,maxnum,k,A1,A2。和一个浮点型变量A3。其中num和maxnum用来输出能被3整除的最大值。K代表 满足A3条件的个数用来求平均值。
数据处理:
BEGIN 令 maxnum=0 输入 N for (i = 0;i < N;i++) switch(num%3) case num%3=1;则A2++;break; case 2:A3 = A3 + num;K++;break; 得出A1,A2,A3,K,maxnum的值,跳出for循环语句 if (maxnum == 0) 输出NONE else 输出maxnum if (A2 == 0) 输出NONE else 输出NONE if (A3 == 0) 输出NONE else 输出A3/K END
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
5 55 66 77 88 99 |
99 2 77.0 | 随机5位数 |
6 23 78 56 44 56 85 |
78 1 44.8 | 随机六位数 |
3 31 91 61 |
NONE 3 NONE | A1,A3不存在的数 |
1.2.4 PTA提交列表及说明
编译错误 |
在改代码的时候在某条语句中,不小心用了中文的分号,害我找了半天 |
答案错误 |
输出的答案之间没有用空格联系起来,后在%d之前加入空格解决 |
答案错误 |
误将所有的printf语句放在了for循环语句之中,导致答案按输出错误 |
2.代码互评
同学1代码
我的代码
代码相同之处:我和这位同学的思路大致相同,体现在,给定一个额外的参数(我的是maxnum,他的是result)来判断输出A1的结果。
不同之处: 这位同学把A2值的判断放在了if语句当中,而A3的值则单独用switch语句判断。 我的代码则是把A2,A3的值都放在了switch语句中得出。
3.学习总结
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 20小时 | 372 | if-else语句和数学函数 | 暂无 |
第七周 | 10小时 | 226 | 分支结构 | 暂无 |
第八周 | 12小时 | 110 | for循环结构 | 暂无 |
第九周 | 8小时 | 180 | 函数的声明,定义和调用 | 对于自定义函数的用法还比较迷茫 |
第十周 | 21小时 | 350 | 学习了巩固了嵌套语句和逻辑表达式的使用方法 | 对于字符型数据类型的运用和各种运算符的先后级还有待学习 |
第十一周 | 17小时 | 530 | 学习了switch语句的使用方法,和一些数组的使用 | getchar不大会用,数组也是 |
3.2博客字数和代码行数
3.3 学习内容总结和感悟
这一周的学习任然是十分的紧张,感觉除了写代码就在写其他作业,完全没时间来打游戏什么的,但是收获还是很多的。通过不断地解题,思考,再结合百度的帮助。我还是收获了许多。再加上有许多同学来问题的缘故,我能知道许多其他同学的思路,再反过来优化自己的代码。这使得我受益良多。