问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 能够自主开发出一个软件,拥有用户并能够维护程序运行 |
这个作业在那个具体方面帮助我实现目标 | 学习到一种新的分支结构switch语句,对C语言有进一步了解,学会写伪代码理清编程思路 |
参考文献 | CSDN技术社区 |
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对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
1.1.1数据处理
数据表达:使用了n,i,grade,a,b,c,d,e八个变量,都定义为整型
数据处理:
Begin
输入学生人数n
利用for语句循环输入每位学生成绩grade
利用switch语句对每位学生成绩进行判断并接收结果
将判断结果储存到a,b,c,d,e中(a,b,c,d,e表示各阶段人数累加量)
输出各阶段人数
End
1.1.2实验代码贴图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 0 | 0 0 0 0 1 | 最小人数最低成绩 |
6 0 80 60 70 90 100 | 2 1 1 1 1 | 含各分数段,最大有100分 |
1.1.4PTA提交列表及说明
-
部分正确:忽略了满分情况,没写入case10
-
部分正确:输出格式未空格
1.2整数的分类处理
给定 N 个正整数,要求你从中得到下列三种计算结果:
- A1 = 能被 3 整除的最大整数
- A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
- A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
输出格式:
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE
。
输入样例 1:
8
5 8 7 6 9 1 3 10
输出样例 1:
9 3 6.5
输入样例 2:
8
15 18 7 6 9 1 3 10
输出样例 2:
18 3 NONE
1.2.1数据处理
数据表达:使用变量n,i,a1,a2,a3,b1,b2,b3,sum,d,都定义为整型,a1,a2,a3用于输出,b1,b2,b3辅助判断
数据处理:
Begin
输入整数个数n
利用for语句循环输入整数d
if-else语句判断整数d除以三的余数情况
a1,a2,a3根据判断结果进行计算并接收结果
在每种情况中给b1,b2,b3赋值进行辅助判断
switch语句判断辅助判断变量的值
输出a1,a2,a3结果
End
1.2.2实验代码贴图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
6 7 6 9 0 1 9 | 9 2 NONE | 第一种情况中出现两个最大值 |
0 | NONE NONE NONE | 最小n |
1.2.4PTA提交列表及说明
- 答案错误:没有注意输出时的空格问题
- 答案错误:switch语句中没写break导致输出错误
2代码互评
题目:二进制转10进制
classmate1
classmate2
myself
1.输入时,c1使用的是函数scanf(),而我使用的是函数getchar(),区别是,getchar()每次只能读入一个字符,而scanf()则不是
2.在判断是否为二进制数时,c2用逻辑符号'||'连接了两个条件,首先判断是二进制数时进行进制转换,而我是用逻辑符号'&&'连接条件判断不为二进制数时输出'error input!'
3.学习总结
3.1学习进度条
周 | 这周所花时间 | 代码行 | 学到的知识简洁 | 目前比较迷惑的问题 |
---|---|---|---|---|
第五周 | 8 | 56行 | 常量,变量和数据类型 | 无 |
第六周 | 12 | 89行 | 格式化输入函数scanf(),for循环 | 无 |
第七周 | 19 | 286行 | 分支结构 | 无 |
第八周 | 15 | 238行 | 函数的定义和调用 | 函数的定义和调用的基本用法 |
第九周 | 10 | 173行 | while语句,函数的定义和调用强化 | 被调函数返回值 |
第十周 | 20 | 312行 | 逻辑运算符优先级,定义和访问数组 | 逻辑表达式的运算 |
第十一周 | 11 | 189行 | switch语句,ASCⅡ码的了解 | 进制转换 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
本周其实学习到的东西挺少的,但我感觉到了跟其他几位的助教的差距,他们能够在完成作业代码后,还会利用其他时间去刷题,而我是没有的,所以也就导致了我可能一周学习了较长时间的程序设计,但是效率不高,大不分时间因为没有解题思路而流失,所以学会利用时间真的很重要。这也需要自己的努力。尝试在下周列出安排表,按步进行。