输入若干名学生一门课程考试成绩及学号,输出平均成绩、最高分和学号,当输入学号为-1时结束。
时间: 2023-05-31 12:18:36 浏览: 190
### 回答1:
好的,以下是用中文回复的代码:
```
# 初始化变量
sum_score = 0
max_score = 0
max_id = ""
# 循环输入学生信息
while True:
# 输入学生信息
id = input("请输入学生学号(输入-1结束):")
if id == "-1":
break
score = int(input("请输入学生成绩:"))
# 更新变量
sum_score += score
if score > max_score:
max_score = score
max_id = id
# 计算平均成绩
avg_score = sum_score / (int(id) + 1)
# 输出结果
print("平均成绩为:", avg_score)
print("最高分为:", max_score, ",学号为:", max_id)
```
希望能够帮到您!
### 回答2:
这是一道典型的输入输出问题,我们需要将输入的学生考试成绩和学号进行处理,计算平均成绩和最高分,并输出结果。同时,要注意判断输入学号是否为-1来决定结束程序。
首先,我们需要定义一个变量来存储学生的总分数,一个变量来存储最高分,另一个变量来存储最高分的学生学号。然后,我们采用循环的方式来不断输入学生的成绩和学号,直至输入-1为止。每次输入完成后,我们计算总分数和最高分,并更新最高分和最高分学生的学号。最后,我们根据输入的学生数量计算平均成绩,并输出结果。
下面是一个简单的代码实现:
```
#include <iostream>
using namespace std;
int main() {
int sum = 0; // 总分数
int max_score = 0; // 最高分
int max_id = 0; // 最高分学生的学号
int count = 0; // 学生数量
int id, score;
cin >> id; // 输入第一个学生的学号
while (id != -1) {
cin >> score; // 输入第一个学生的成绩
sum += score; // 更新总分数
count++; // 记录学生数量
if (score > max_score) { // 更新最高分和最高分学生的学号
max_score = score;
max_id = id;
}
cin >> id; // 继续输入下一个学生的学号
}
if (count > 0) { // 判断是否有学生输入
double average = static_cast<double>(sum) / count; // 计算平均成绩
cout << "平均成绩:" << average << endl;
cout << "最高分:" << max_score << "(学生学号:" << max_id << ")" << endl;
} else { // 如果没有学生输入,则输出提示信息
cout << "没有输入任何学生成绩!" << endl;
}
return 0;
}
```
上述代码中使用了一个小技巧,即将总分数除以学生数量时先转换为 `double` 型,这样就可以避免因为整数相除而导致精度丢失的问题。
总体来说,这是一道比较简单的输入输出问题,但需要熟练使用循环和条件判断等基本编程概念,以及清楚掌握变量和数据类型的使用。
### 回答3:
这道题目要求我们输入若干名学生的考试成绩和学号,并计算出平均成绩、最高分和对应的学号。同时,当输入的学号为-1时,程序应该结束。
首先,我们需要建立一个数据结构来存储每个学生的信息。由于每个学生都有一个学号和对应的考试成绩,我们可以使用一个字典来存储这些信息。字典的键为学号,值为考试成绩。例如,我们可以建立如下字典:
```
scores = {'001': 90, '002': 75, '003': 84, '004': 92}
```
这个字典表示有4名学生,分别对应学号001、002、003和004,他们的考试成绩分别为90、75、84和92分。
接下来,我们需要计算平均成绩。平均成绩可以通过将所有学生的成绩加起来除以总人数来计算。假设我们有n名学生,他们的考试成绩分别为s1、s2、...、sn,那么平均成绩为:
```
average_score = (s1 + s2 + ... + sn) / n
```
这个公式非常简单,我们只需要遍历一遍字典,将所有成绩加起来,并记录下总人数n即可。
最高分和对应学号也可以通过遍历字典来实现。我们可以设置两个变量max_score和max_id,分别表示目前为止的最高成绩和对应的学号。遍历字典时,如果当前的成绩比max_score要高,就将max_score和max_id更新为当前值。最后,输出max_score和max_id即可。
最后,我们需要加入判断语句来实现当输入的学号为-1时结束程序。我们可以在程序开头先读入所有学生的数据,并将它们存储到字典中。然后,我们可以使用一个循环来读入每个学生的查询请求,直到学号为-1为止。每次查询时,我们只需要在字典中查找对应的成绩,然后输出即可。
下面是完整的程序代码:
阅读全文