这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I博客作业07] |
我在这个课程的目标是 | 理解并使用switch语句,学会分支结构的嵌套 |
这个作业在那个具体方面帮助我实现目标 | 完成PTA作业,熟练运用符号 |
参考文献 | switch语句的执行流程 |
一、PTA作业
1.1 计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
1.1.1 数据处理
数据表达:定义了三个整型变量y,m,d为年月日的缩写;再把每个月的case n:number=(第(N-1)个月以及之前月之和)变化表达式列出;
数据处理:先定义整型int变量,再用if-else语句判断平闰年,最后输出天数,平年闰年在2月份以后会有所不同。
伪代码:
include<stdio.h>
int main()
{
int 年,月,日,
scanf("%4d四位数年/%2d二位数月/二位数日%2d",&year,&month,&day);
if如果(输入的年份是闰年))
{
switch(月)
{
case 1:表达式;break;
...
case 11:表达式;break;
}
}
else 平年
{
switch(月)
{
case 1:表达式;break;
...
case 11:表达式;break;
default :表达式;break;
}
}
输出printf("%d
",day);
return 0;
}
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2000/06/24 | 174 | 2000年6月24日是这年的第174天 |
2008/10/02 | 276 | 2008年10月2日是这年的第276天 |
2019/01/27 | 27 | 2019年1月27日是这年的第27天 |
1.1.4 PTA提交列表及说明
编译错误:请教了郭丽飞,这一步没有输入case 1:printf("%d
",d);break;
1.2统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
1.2.1 数据处理
数据表达:共定义了九个变量:N为学生总数,i为控制变量,grade为分数,w为变量,A,B,C,D,E为五分制分数;
数据处理:定义整型变量后,for结构中嵌套了switch语句
伪代码:
include <stdio.h>
int main()
{
int 学生人数,控制变量,分数,变量,五分制分数;
int A=0,B=0,C=0,D=0,E=0;
scanf("%d",&n);
if(n>0)
{
for(i=1;i<=n;i++)
{
scanf("%d",&grade);
w=grade/10(判断五分制分数等级);
switch(w)
{
case 10:条件;break;
case 9:条件;break;
case 8:条件;break;
case 7:条件;break;
case 6:条件;break;
default:条件;break;
}
}
}
printf("%d %d %d %d %d",输出各个成绩);
return 0;
}
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
3 11 48 67 | 0 0 0 1 2 | A等级0个,B等级0个,C等级0个,D等级1个,E等级2个 |
4 8 9 45 80 | 0 1 0 0 3 | A等级0个,B等级1个,C等级0个,D等级0个,E等级3个 |
5 9 12 45 62 98 | 1 0 0 1 3 | A等级1个,B等级0个,C等级0个,D等级1个,E等级3个 |
1.2.4 PTA提交列表及说明
default:E++;break;忽略了default
for语句没用大括号括起来。
2.代码互评
同学代码截图
我的代码截图
我定义了每个变量的缩写,这样打代码时候方便些。老年人的偷懒。
我用的平年闰年分开计算,运用if-else语句,该同学列出闰年的例子,推出平年。
同学代码截图
我的代码截图
该同学用了数组知识,我也在后学习中。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第六周 | 18小时 | 370行 | 分支结构和用char输入字符 | 无 |
第七周 | 16小时 | 400行 | 运用if-else语句 | 特殊符号运用不熟练 |
第八周 | 24小时 | 378行 | 掌握for语句循环的运用 | 无 |
第九周 | 25小时 | 264行 | 字符型数据类型和逻辑运算符 | 无 |
第十周 | 19小时 | 164行 | 熟练分支结构,逻辑符的运算 | 时常编译错误 |
第十一周 | 21小时 | 158行 | switch语句的使用 | 无 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 524 | 55 |
第五周 | 618 | 117 |
第六周 | 0 | 490 |
第七周 | 2189 | 549 |
第八周 | 2400 | 560 |
第九周 | 3478 | 670 |
第十周 | 4290 | 784 |
第十一周 | 5410 | 927 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
学习了switch语句,做题比以前更有思路了些。随着C语言学习的知识越来越多,感觉自己都赶不上老师的步伐,大学大部分也是凭自学,分配规划好敲代码时间,做到提前预习。