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语言有一段时间了,越是学到后面越难,上周学习了分支结构的嵌套,这周又学了一个语句,解题技巧又增加了,现在编代码时没有第一次那么吃力了,但是仍然不太熟练,我还欠缺很多的锻炼,我以后还需要更努力的去练习,花更多的时间在这里,朝着我的目标前进

posted @ 2019-11-07 16:16  软4杨宇  阅读(244)  评论(8编辑  收藏  举报