这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9930
我在这个课程的目标是 熟悉多分支结构switch语句的使用。
这个作业在那个具体方面帮助我实现目标 作业要求我们必须使用switch语句,在写作业的过程中switch语句逐渐熟练
参考文献 《C语言作业》《Markdown语法》

1.PTA实验作业(20分/题)

1.1 7-10 计算天数 (15 分)

本题要求编写程序计算某年某月某日是该年中的第几天。

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

1.1.1数据处理

include<stdio.h>

int main(void)
{
int year, month, day, sum;
sum = 0;

scanf(输入年月日);

if(判断是否为闰年)
{(闰年) 
	switch(输入的月份)
	{	(通过输入的月份与下面case常数对比,并判断执行什么语句) 
		case 1:sum = sum + day;break;
	(省略部分语句) 
	}
}

else(不是闰年) 
{
	
	switch(输入的月份)
	{	(通过输入的月份与下面case常数对比,并判断执行什么语句) 
	
		case 1:sum = sum + day;break;
		case 2:sum = sum + day + 31;break;
	(省略部分语句)
}

printf(输出第几天);

return 0;

}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2001/1/3 3 第三天
2001/2/4 24 第24天
2001/3/5 64 第64天
2002/10/2 275 275天

1.1.4 PTA提交列表及说明

编译错误:switch语句case使用“;”
部分正确:全部使用switch导致条件欠缺,添加ifelse语句后正确

1.2 7-12 统计学生成绩 (15 分)

本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:

1.2.1 数据处理

include<stdio.h>

int main(void)
{
int N, i, grade, A, B, C, D, E;
A = 0;
B = 0;
C = 0;(初始赋值)
D = 0;
E = 0;

scanf(输入学生人数);

for(使用循环将数据一个个输入)
{	
	scanf(输入一个人的成绩);

	switch(判断成绩的十位数进而判断范围)
	{
		case 6:D++;break;
		case 7:C++;break;
		case 8:B++;break;(五分制成绩分布统计) 
		case 9:
		case 10:A++;break;
		default:E++;break;
	}
}
printf(输出五分制成绩分布);
return 0;

}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
10 22 77 0 0 1 0 2
10 50 43 76 89 0 1 1 0 3
44 55 88 0 1 0 0 2
33 44 87 0 1 0 0 2

1.1.4 PTA提交列表及说明

段错误:scanf中没有使用&地址符导致错误

2.代码互评(5分)

找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。

同学代码截图

自己代码截图

同学代码截图

自己代码截图

同学的代码说明更明确,更简洁

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介
9/11.06-11.08 14小时 140 在写作业的过程中switch语句逐渐熟练

3.2 累积代码行和博客字数(5分)

时间 博客字数 代码行数
第五周 397 24
第六周 618 50
第七周 1028 157
第八周 1020 263
第九周 1192 393
第十周 1125 533

3.3 学习内容总结和感悟

3.3.1 学习内容总结

http://assets.processon.com/chart_image/5db40088e4b09df5518389aa.png

3.3.2 学习感悟

最近学习了switch语句,又学到了新的东西,虽然还有很多欠缺但是我会继续努力。