C语言I博客作业07

C语言I博客作业07

这个作业属于哪个课程? C语言程序设计I
这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9934
我在这个课程的目标是 计算机中级执照
这个作业在哪个具体方面帮助我实现目标? 学习c语言编程是最基础的一课,是为后面所学做好铺垫。属于打基础一块。
参考文献 《C语言程序设计》,《C Primer Plus》等。

1.PTA实验作业

1.1计算天数

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

输入格式:

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

输出格式:

在一行输出日期是该年中的第几天。

输入样例1:

2009/03/02

输出样例1:

61

输入样例2:

2000/03/02

输出样例2:

62

1.1.1数据处理

 数据表达:y, m, d, number分别表示年,月,日以及天数;
 数据处理:(y % 4 == 0&&y % 100 != 0)||(y % 400 == 0)来计算闰年,通过人工计算天数来完成switch结构(太繁琐了,而且易出错);

1.1.2实验代码截图


1.1.3 造测试数据

|||
|:--|:--|:--|
|输入数据|输出数据|说明|
|2009/03/02|61|由题目提供|
|2003/01/25|25|表示为2003年的第25天|

1.1.4 PTA提交列表及说明

  • 答案错误:由于for的大括号没有将switch语句包裹起来导致的。
  • 答案正确:。。。

1.2统计学生成绩

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

大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。

输入格式:

输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。

输出格式:

在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

输入样例:

7
77 54 92 73 60 65 69

输出样例:

1 0 2 3 1

1.2.1 数据处理

 数据表达:A,B,C,D,E分别代表各位同学的学习成绩等级,n等于输入的数
 数据处理:for (i = 0; i < n; i++)。switch(a[i])。

1.2.2 实验代码截图

1.2.3 造测试数据

|||
|:--|:--|:--|
|输入数据|输出数据|说明|
|7 77 54 92 73 60 65 69|1 0 2 3 1|题目提供|
|5 74 73 89 92 100 |2 1 2 0 0|由成绩等级划分|

1.2.4 PTA提交列表及说明

  • 部分正确:没有将switch加入到for的大括号里。
  • 答案正确:。。。

2.代码互评

同学的代码


我自己的作业


  • 1我自己的代码是直接将结果计算出来。
  • 2而同学所写是直接利用公式来得到结果。
  • 3相较而知,他的代码更加工整美观,而我定义的代码太繁琐了。

同学的代码

自己的作业

  • 1.我的代码与他的相比太多了,忘记用defatul的运用了。
  • 2.他定义的变量更加具体清楚。值得我的学习。

3.学习总结

本周学习了switch语句,我个人觉得这个比if-else语句要复杂要难。可能是我还没找到方法吧,使用熟练度也不高,导致这次作业写了很久,说实话事倍功半很累。而且一定要多多练习才能熟悉。

3.1 学习进度条

周/日期 这周花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第五周 8小时 五十行 hello world等一些简单的编译 暂无
第六周 8小时 八十行 通过编译来进行华氏度与摄氏度的转换 暂无
第七周 12小时 一百三十行 学习了if else,定义一部分数学函数 忽略scanf的返回值
第八周 13小时 一百五十行 学习了for格式 暂无
第九周 13小时 一百五十行 学习了while格式 对于定义函数仍然有些搞不懂
第十周 14小时 一百七十行 学习了字符型变量——char 无法灵活的运用取余
第十一周 14小时 一百九十行 学习了switch语句 switch语句

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

   对于switch语句要能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。switch()的参数类型不能为实型 。
   case标签必须是常量表达式。如42或者'4'。switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。如果表达式的值匹配其中的某个 case 常量,程序流就会跳转到该 case 标签后 
   面的语句。如果没有匹配的 case 常量,程序流就会跳转到 default 标签后的语句(如果存在 default 标签)

3.3.2 学习体会

对于这周的switch——在不使用break时,如果表达式的值与常量表达式2的值相等,不但执行语句段的2,还执行其后的所有语句段。在使用switch语句时,一定要记得加break,否则他会继续执行下列的语句。学习是越来越难了,不努力的话,就会发现很难完成自己的作业了。同样也要及时复习以前所学内容,让两者融会贯通,才能做到真正的学会,学好。

posted @ 2019-11-08 17:06  一柄长剑两桀骜  阅读(198)  评论(1编辑  收藏  举报