C语言I博客作业07

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9932
我在这个课程的目标是 精通c语言,学会自己编写程序
这个作业在那个具体方面帮助我实现目标 学会switch语句,用switch语句处理多分支选择问题
参考文献 C语言程序设计Ⅰ

1.PTA实验作业

1.1统计学生成绩

本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。 
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

1.1.1数据处理

数据表达:定义了整形变量n,N,i,x1,x2,x3,x4,x5。并把x1,x2,x3,x4,x5初始化。浮点型变量score。
数据处理:用了if-else结构和switch语句。表达式-x1=x1+1,x2=x2+1,x3=x3+1,x4=x4+1,x5=x5+1.

1.1.2实验代码截图

1.1.3造测试数据

输入数据 输出数据 说明
77 54 92 73 60 65 69 1 0 2 3 1 没有成绩为B的同学
100 90 52 34 2 0 0 0 2 没有成绩为B,C,D的同学
90 85 76 62 42 1 1 1 1 1 成绩为A,B,C,D,E的同学分别有一人

1.1.4PTA提交列表及说明

提交列表说明
* 1.编译错误:这次的代码写的有点长,写着写着就把后面几个n=3,4后面忘记打;了。
* 2.编译错误:因为后面加入了变量x1,x2....,忘记在前面定义了。
* 3.答案错误:switch语句体里面的表达式没有进行累加。

1.2程序设计联考

自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。
输入格式:
在一行中给出1个6位的正整数account。
输出格式:
在一行中输出account的学校。注意:如果不清楚学校代号是哪个学校,则输出"OtherUniversity"。

1.2.1数据处理

数据表达:定义了整形变量N,n,x;
数据处理:用了if-else结构和switch语句。

1.2.2实验代码截图

1.2.3造测试数据

输入数据 输出数据 说明
123456 Hunan Agricultural University 该学生来自Hunan Agricultural University
015966 Other University 该学生来Other University
369852 Huaihua University 该学生来自Huaihua University

1.2.4PTA提交列表及说明

提交列表说明
* 1.编译错误:题目中说如果不清楚学校代号是哪个学校,则输出"OtherUniversity"。我以为要输出"OtherUniversity",符号也要。我就在OtherUniversity两边加了’。
* 2.部分正确:我在OtherUniversity前面打了几个空格。 错了,就又在后面打了几个空格。我也不知道为什么。最后终于发现了。(这道题目做对了后 觉得很简单。虽然错误就只出现在OtherUniversity,但是找出来还是比较困难的。都是题目惹的祸)

2代码互评

同学代码截图


自己代码截图

这题我们的思考方向不一样,我想的是直接if语句判断数在那个范围,在用switch语句进行选择。而同学的代码是先进行算,再用switch语句进行选择。相同的是我们都用了switch语句。各有各的好处,我的是比较容易懂同学的是看起来整洁舒服。第一个同学的代码和第二个同学的代码在思路上差不多,只是第二个同学没有全部进行累加。

3.学习总结

3.1学习进度条

周/日期 这周所花时间 代码行 学到的知识点简介 此前比较迷茫的问题
第一周 1天 24行 学会了一点printf()语句,知道主函数 \n的用法
第二周 4天 23行 学会计算摄氏温度与华氏温度的转化 =两边打空格
第三周 2天 62行 学会一点scanf()语句,定义变量,if-else结构 很多地方不知道为什么要打空格
第四周 1天 145行 学会了for()语句 目前没有
第五周 1天 142行 对函数的定义和调用有初步的认识 在函数的定义中是否可以输入形参的值
第六周 2天 132行 加深对if-else分支结构的认识,字符型变量和常量的定义以及字符型输入输出函数 字符型数据的输出和输入不懂
第七周 1天 206行 学会switch语句,用switch语句处理多分支选择问题 在编译器上打代码时,编译器没有提示错误,但是答案错了。后来才知道case后面要打空格再打常数表达式

3.2累积代码行和博客字数

3.3学习内容总结和感悟

3.3.1学习内容总结

3.3.2学习体会

  • 1.机课上在做实验题第一题时,编译器没有提示错误,但是答案一直错误,当时真的快崩溃了。我就一直检查代码是不是错了,但是代码确实没有错误。最后才发现原来case后面要打空格再打常数表达式。最后答案对了还是很开兴的。
  • 2.这周的pta都要用switch语句做,做起来还是比较吃力的。对于switch语句用起来还不是特别熟练。还是要多多练习,就像if-else语句,用多了就比较熟练了。还有就是这周pta的第二题,我总有一个格式错误,一直找不到。我的学校名字都是复制上去的。应该没有错误。最后发现原来OtherUniversity这个单词之间要自己打空格。这次代码有点长犯了不该犯的错误,希望下次不管代码有多长,也要细心,不要急躁。
  • 3.这周还有一个收获 是在做pta最后一题时,要输出如18 3 NONE这要的形式,我们就要在第二和第三个输出函数里面添加一个空格,如printf(" NONE");。
原文地址:https://www.cnblogs.com/deng9/p/11816283.html