C语言I博客作业07

问题 回答
这个作业属于那个课程 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学习体会

本周其实学习到的东西挺少的,但我感觉到了跟其他几位的助教的差距,他们能够在完成作业代码后,还会利用其他时间去刷题,而我是没有的,所以也就导致了我可能一周学习了较长时间的程序设计,但是效率不高,大不分时间因为没有解题思路而流失,所以学会利用时间真的很重要。这也需要自己的努力。尝试在下周列出安排表,按步进行。

原文地址:https://www.cnblogs.com/whl666/p/11813848.html