这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业07 |
我在这个课程的目标是 | 熟悉多分支结构switch语句的使用,更加熟练 |
这个作业在那个具体方面帮助我实现目标 | switch语句得到训练,锻炼逻辑思维能力 |
参考文献 | C语言程序设计,百度,搜狗百科 |
1.PTA作业
1.PTA实验作业
1.1计算天数
内容:本题要求编写程序计算某年某月某日是该年中的第几天。输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。在一行输出日期是该年中的第几天
1.1.1数据处理
数据表达:定义整型变量year,mouth,day,total;year,mouth,day为输入的年月日,total为那一年的第几天
数据处理:
int year,mouth,day,total;(定义整型变量)
输入年月日
if(闰年判断条件)
then
do switch语句
{case 1:case 2:case 3:case 4:case 5:case 6:
case 7:case 8:case 9:case 10:case 11:case 12:}(分别是day加前面月份日期和)
else
switch语句
{case 1:case 2: case 3:case 4:case 5:case 6:
case 7:case 8:case 9:case 10:case 11:case 12:}(分别是day加前面月份日期和)
输出这一天为该年的第几天;
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
输入数据 | 输出数据 | 说明 |
2003/03/02 | 61 | 非闰年跨2月 |
2000/03/02 | 62 | 被400整除的闰年跨2月 |
2004/04/05 | 96 | 普通闰年跨2月 |
2000/05/14 | 135 | 被100整除的非闰年跨4月 |
2003/11/17 | 231 | 非闰年跨9月 |
2004/01/12 | 12 | 闰年1月 |
2003/01/13 | 13 | 非闰年1月 |
1.1.4PTA提交列表及说明
提交列表说明:
1.编译错误:printf("%d",total)后面的‘;’return 0,} 在devc++上复制过去的时候没有复制到,就少了return 0,} 后来改了
2.在devc++上没有考虑到被100整除的闰年跨4月的情况,后来问其他人就加上去了
1.2统计学生成绩
内容给定 N 个正整数,要求你从中得到下列三种计算结果:
A1 = 能被 3 整除的最大整数
A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。:
数据表达:定义整型变量N,i为循环终止条件,remainder为余数,num输入的数,A1,A2;定义浮点型变量A3,average为平均数,total数的和
数据处理:
头文件include
主函数int main()
{
N, i, remainder, num, A1 , A2;(定义整型变量)
A3, average , total ;(浮点型变量)
输入N;
for i <--1toN
do
输入num
取num除以3的余数
switch 语句
case 0:ifA1 < num ,do num<--A1;
case 1:A2累加
case 2:和等于num累加; A3累加
平均数等于和除以A3;
if A1=0
then 输出NONE
else
输出A1
if A2 = 0
then 输出NONE
else
输出A2
if total = 0与 A3 = 0
then 输出NONE
else
输出average;
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
输入数据 | 输出数据 | 说明 |
8 5 8 7 6 9 1 3 10 | 9 3 6.5 | 样例1等价,3种都有 |
8 15 18 7 6 9 1 3 10 | 18 3 NONE | 样例2等价,缺第3种 |
4 3 6 9 12 | 12 NONE NONE | 全被3整除 |
4 4 7 10 13 | NONE 4 NONE | 全是3K+1型 |
4 5 8 11 14 | NONE 4 NONE | 全是3K+2型 |
0 | NONE NONE NONE | 最小的N |
1.2.4PTA提交列表及说明
提交列表说明:
1.格式错误:只有在样例2等价,缺第3种,其他情况都是格式错误,我将NONE后面加了空格,但是还是错误
2.格式错误:问了同学之后将前两个输出加了空格,而第三种情况的空格删掉
2.代码互评
同学的代码
同学的代码
自己的代码
1.第一位徐同学的代码把数字分别加起来,我和杨同学把月份的日期都加起来了
2.变量不同的有sum,total,date,有相同的year,mouth,day,但是本质不变
3.我和徐同学的比杨同学要复杂得多,我们的有20多种情况,杨同学只有10多种可以向她学习
4.杨同学后面加了if语句,能够将另一种情况包括进去
5.我们都用了((year%40&&year%100!=)||year%4000)来判断闰年
3.学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 20h | 60 | 用WinGW-w64来编译C程序 | 文档真的打不开,可能是电脑原因 |
第七周 | 10h | 90 | 关系运算,if-else语句,格式化输入语句scanf() | 无 |
第八周 | 8.5h | 80 | for的循环语句,指定次数的循环程序设计 | 不太会文字与数学的转换 |
第九周 | 8h | 100 | 函数的调用和定义的初步认识 | 自定义函数不熟悉 |
第十周 | 10h | 170 | 多分支结构、字符型数据类型和逻辑运算符 | 多个数据输出不熟练 |
第十一周 | 11h | 220 | 熟悉多分支结构switch语句的使用 | 逻辑思维能力差 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
1.时间太紧了,熬夜赶作业,主要是自己不怎么会,要不然也没那么累了
2.需要有较强的逻辑思维能力,我有一点欠缺,难受
3.每一次写作业都需要翻书,对知识不熟悉
4.在网上听一些关于C语言的课,还是不太懂
5.当面对题目时,只是脑袋一片空白,不知道用什么语句