C语言I作业07
这个作业属于那个课程 | 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\n",day);
return 0;
}
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2000/06/23 | 175 | 2000年6月23日是这年的第175天 |
2008/10/01 | 275 | 2008年10月1日是这年的第275天 |
2019/01/01 | 1 | 2019年1月1日是这年的第1天 |
1.1.4 PTA提交列表及说明
编译错误:忽略了这一步case 1:printf("%d\n",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 12 45 67 | 0 0 0 1 2 | A等级0个,B等级0个,C等级0个,D等级1个,E等级2个 |
4 7 9 45 80 | 0 1 0 0 3 | A等级0个,B等级1个,C等级0个,D等级0个,E等级3个 |
5 4 12 45 67 99 | 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行 | 如何用 MinGW-w64 来编译C程序 | 无 |
第七周 | 16小时 | 400行 | 运用if-else语句 | 特殊符号运用不熟练 |
第八周 | 24小时 | 378行 | 掌握for语句循环的运用 | 无 |
第九周 | 25小时 | 264行 | 学会使用了自定义函数 | 无 |
第十周 | 19小时 | 164行 | 熟练分支结构,逻辑符的运算 | 时常编译错误 |
第十一周 | 21小时 | 158行 | switch语句的使用 | 无 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 520 | 55 |
第五周 | 610 | 110 |
第六周 | 0 | 400 |
第七周 | 2100 | 450 |
第八周 | 2400 | 560 |
第九周 | 3400 | 670 |
第十周 | 4201 | 780 |
第十一周 | 5412 | 900 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
学习C语言一短时间了,从开始的懵逼到现在的有些头绪了,但还是不熟练,练习欠佳,需要多加练习。学会使用了switch语句,难度越高越考验我的耐力,继续加油,干就完事了。