C语言I博客作业07
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业07 |
我在这个课程的目标是 | 学会并熟练多分支结构switch语句的使用 |
这个作业在那个具体方面帮助我实现目标 | 在PTA上各种题型的练习和老师布置的类型作业 |
参考文献 | 百度 |
一、PTA作业
1.1 计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
1.1.1 数据处理
数据表达: 用了4个整型变量year,month,day,date;
每个月的情况列出
date=每个月的天数加之前的天数将表达式列出
数据处理: 定义整型变量,用case列出闰年情况,判断是否为闰年,在列出非闰年的式子,最后输出
伪代码
include<stdio.h>
int main()
{
int定义年,月,日;
int定义天数=0;
scanf("%d/%d/%d"输入年月日三个值,&year,&month,&day);
switch(月份)
{
case 1:对应的天数;break;
case 2:对应的天数;break;
case 3:对应的天数;break;
case 4:对应的天数;break;
case 5:对应的天数;break;
case 6:对应的天数;break;
case 7:对应的天数;break;
case 8:对应的天数;break;
case 9:对应的天数;break;
case 10:对应的天数;break;
case 11:对应的天数;break;
case 12:对应的天数;break;
}
if((年数%40&&年数%100!=0||年数%4000)
{
if(月份>2)
{
天数+1 ;
}
}
printf("%d",date);输出天数
return 0;
}
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2000/02/25 | 56 | 2月25日是2000年的第56天 |
2001/07/20 | 201 | 7月20日是2001年的第201天 |
2005/05/27 | 147 | 5月27日是2005年的第147天 |
1.1.4 PTA提交列表及说明
提交列表说明:
- 答案错误:第29行中%d前面加了空格
- 答案正确:把第29行%d前面的空格删除
1.2统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
1.2.1 数据处理
数据表达:用了九个整型变量:N(学生数),i(控制变量),G(分数),sum(变量),A,B,C,D,E(五分制);
数据处理:定义整型变量,用for结构进行循环,用switch分支结构列出情况
伪代码:
include<stdio.h>
main()
{
int 定义整型N(学生个数),i(控制变量),G(学生成绩),sum(成绩/10),A=0,B=0,C=0,D=0,E=0;
scanf("%d",&N)先输出N;
for(i=1;i<=N;i++)循环N次的条件
{
scanf("%d",&G)输出G;
sum=G/10;
switch(成绩/10)
{
case 10:A++;break;A=A+1
case 9:A++;break; A=A+1
case 8:A++;break; B=B+1
case 7:A++;break; C=C+1
case 6:A++;break; D=D+1
default:E++;break
}
}
printf("%d %d %d %d %d",A,B,C,D,E);输出ABCDE等级的人数
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
3 68 49 63 | 0 0 0 2 1 | A等级的有0个,B等级的有0个,C等级的有0个,D等级的有2个,E等级的有1个 |
4 68 75 84 59 | 0 1 1 1 1 | A等级的有0个,B等级的有1个,C等级的有1个,D等级的有1个,E等级的有1个 |
5 65 73 24 89 94 | 1 1 1 1 1 | A等级的有1个,B等级的有1个,C等级的有1个,D等级的有1个,E等级的有1个 |
1.2.4 PTA提交列表及说明
提交列表说明:
- 部分正确:第14行中B后面少了一个+
- 部分正确:第17行中break后面少了;
- 部分正确:第20行中少了一个%d
- 答案正确:在第14行B后面再加一个+,在第17行break后面加上; 在第20行再加一个%d。
2.代码互评
同学代码截图
自己代码截图
- 该同学定义了y,n,d,我定义了year,month,day,我定义了英文全称,他定义了英文字母
- 该同学用if-else语句将闰年和非闰年的情况分开列出,我是直接将闰年的情况列出,再举出非闰年情况的子式
- 该同学的代码都将情况列出使人易懂,我的代码行数较少看起来没有那么多
同学代码截图
自己代码截图
- 该同学用了两次for循环和一次switch结构,我只用了一次for循环和switch结构
- 该同学用了6个常量表达式,我用了7个表达式,而且该同学用到了数组的知识
- 该同学用了数组提前学习了后面的内容值得我学习,但是我的代码相比较之下更简单
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 21小时 | 400行 | 如何用 MinGW-w64 来编译C程序 | 无 |
第七周 | 24小时 | 478行 | 运用if语句完成各种数学程序 | 对于&&的用法不了解,现在操作不熟练 |
第八周 | 20小时 | 349行 | 掌握使用for循环语句实现指定次数的循环程序设计 | 无 |
第九周 | 23小时 | 264行 | 学会使用自定义函数 | 目前不太熟练 |
第十周 | 22小时 | 167行 | 熟悉多分支结构、字符型数据类型和逻辑运算符 | 还没有完全熟悉 |
第十一周 | 18小时 | 150行 | 熟悉多分支结构switch语句的使用 | 无 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 525 | 50 |
第五周 | 645 | 100 |
第六周 | 0 | 400 |
第七周 | 2659 | 478 |
第八周 | 3586 | 597 |
第九周 | 4769 | 698 |
第十周 | 5897 | 787 |
第十一周 | 6289 | 897 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
学习c语言有一段时间了,越是学到后面越难,上周学习了分支结构的嵌套,这周又学了一个语句,解题技巧又增加了,现在编代码时没有第一次那么吃力了,但是仍然不太熟练,我还欠缺很多的锻炼,我以后还需要更努力的去练习,花更多的时间在这里,朝着我的目标前进