问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 快速的敲代码,制作出能使用的小软件 |
这个作业在那个具体方面帮助我实现目标 | 熟悉多分支结构switch语句的使用 |
参考文献 | 百度,《C语言程序设计》 |
1.PTA实验作业
1.1 题目1:
本题要求编写程序计算某年某月某日是该年中的第几天
1.1.1数据处理
数据表达:使用了整形变量i,year,day,month,x,sum,用int定义,其中year,month,day分别表示年,月,日,i用来对month进行循环运算,x统计月份的天数,sum统计month与day天数的总和,即日期是该年中的第几天
数据处理:首先用if else语句判断year是否为闰年,再用switch语句对不同月份的天数分开进行计算,最后用表达式sum=x+day统计月加日总共的天数
1.1.2实验代码截图
1.1.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
2001/03/25 | 84 | 3月25日是2001年的第84天 |
2019/11/8 | 312 | 11月8日是2019年的第312天 |
2008/08/18 | 231 | 8月18日是2008年的第231天 |
1.1.4 PTA提交列表及说明
说明
这次的题目较为简单,我先是在Dev c++上面进行编写了之后,并没有出现什么错误,之后就复制到了pta上
1.2 题目2:
给定 N 个正整数,要求你从中得到下列三种计算结果:
A1 = 能被 3 整除的最大整数
A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
1.2.1 数据处理
数据表达:运用了整形变量N,i,x,y, sum,a,b,c,用int定义,其中N表示输入的正整数N,i用来对x进行循环运算,x表示输入的N个整数,y用在switch语句,sum统计输入的整数的总和,以计算平均值,a表示A1的答案,b表示A2的答案,sum/c表示A3的答案
数据处理:按题目要求用表达式y=%3和switch(y)对A1,A2,A3的情况进行分步运算,运算出A1,A2的结果过再用if else语句分出另外一种NONE的情况和A3的结果
1.2.2 实验代码截图
1.2.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
5 13 21 7 8 4 | 21 3 8.0 | A1的值为21,A2的值为3,A3的值为8.0 |
5 25 18 39 9 47 | 39 1 47.0 | A1的值为39,A2的值为1,A3的值为47.0 |
7 5 90 76 32 43 4 17 | 90 3 18.0 | A1的值为90,A2的值为3,A3的值为18.0 |
1.2.4 PTA提交列表及说明
说明:
1.答案错误:在if语句的括号后面本来是a==0,而我是a=0,而且在开始的时候也没对a,b,c的值赋值,所以出现了答案错误
2.答案错误:开始定义a,b,c时没有给这三个变量赋初值,后来在Dev c++上看到运行的结果后发现错误
2.代码互评
同学代码截图
自己代码截图
1.该同学的输入比较复杂,其实用一个字母就可以了
2.相比之下我的代码更加简洁,我把大月与小月放在了一起讨论,而该同学是将每个月份都列出来,然后逐步相加,这样比较繁琐
同学代码截图
自己代码截图
1.该同学的代码和我的很相似,只是他先用的if else语句计算A1, A2,和成绩总和的值,而我是用的switch计算的,与他恰好相反,其它的地方基本一样,这让我知道有时候if else与switch是可以反过来使用的
3.学习总结
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第七周 | 15h | 148 | 多分支结构switch语句的使用 | 对switch语句的用法还是不熟悉 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.这周的PTA作业相比前几周的比较简单,而且题目量比较少,就是最后一题还是借助了百度,我完成起还是比较轻松的
2.上课的时候总是状态不好,老师讲的东西我有很多不是很懂,导致我课后花费的时间比较的多
3.开始学会使用用英语单词代替代码,这样能使我的代码更加清楚易看懂,而且能提升我记单词的能力