从键盘输入某班学生某门课程的成绩(每班人数最多不超过40人),当输入为负值时,表示输入结束,试编程从键盘任意输入一个学号,查找该学号学生的成绩。
时间: 2023-05-31 17:18:36 浏览: 278
### 回答1:
可以使用数组来存储学生的成绩和学号,先输入每个学生的学号和成绩,当输入负值时结束输入。然后再从键盘输入一个学号,遍历数组查找该学号对应的成绩并输出即可。
具体代码如下:
```python
# 定义一个数组,用于存储学生的学号和成绩
scores = []
# 输入每个学生的学号和成绩,当输入负值时结束输入
while True:
score = input("请输入学生的学号和成绩(用空格隔开):")
if score == "-1":
break
else:
score_list = score.split()
scores.append(score_list)
# 从键盘输入一个学号,查找该学号对应的成绩并输出
stu_id = input("请输入要查找的学生学号:")
for score in scores:
if score[0] == stu_id:
print("该学生的成绩为:", score[1])
break
else:
print("没有找到该学生的成绩!")
```
注意,这里假设输入的学号是唯一的,如果有重复的学号,只会输出第一个匹配到的成绩。如果需要输出所有匹配到的成绩,可以将查找到的成绩存储到一个列表中,最后一起输出。
### 回答2:
为了实现从键盘输入某班学生某门课程的成绩的功能,我们需要使用一个循环,每次循环中输入一个学生的学号和成绩,并存储在一个数组中,直到输入值为负数时退出循环。最多不超过40人的条件可以用一个计数变量来判断是否达到上限。
接着,在程序中任意输入一个学号,可以使用另一个循环来查找对应的成绩。在循环中遍历存储成绩的数组,找到与输入学号相同的学号,输出该学生的成绩,并结束循环。
以下是一个示例程序:
```
#include <stdio.h>
#define MAX_SIZE 40
int main() {
int scores[MAX_SIZE]; // 存储学生的成绩
int stu_id, score;
int count = 0; // 已输入的学生数
int i;
// 循环输入学号和成绩
while (1) {
printf("请输入学号和成绩(学号为负数时结束输入):\n");
scanf("%d", &stu_id);
if (stu_id < 0) {
break;
}
scanf("%d", &score);
scores[count] = score;
count++;
if (count >= MAX_SIZE) {
printf("人数已达上限,输入结束。\n");
break;
}
}
// 输入一个学号进行查找
printf("请输入要查找的学号:\n");
scanf("%d", &stu_id);
for (i = 0; i < count; i++) {
if (stu_id == i + 1) { // 学号为i+1,因为数组下标从0开始
printf("学号为%d的成绩为:%d\n", stu_id, scores[i]);
break;
}
}
if (i >= count) {
printf("未找到该学号对应的学生。\n");
}
return 0;
}
```
以上就是一个简单的实现输入学生成绩并查询的程序,可以根据实际需要进行修改和优化。
### 回答3:
本题需要使用数组来存储学生的成绩和学号,在输入时需要对输入进行判断,判断是否为负值,如果是则停止输入,并在下一步中进行查找。程序大致思路如下:
1. 声明一个长度为40的数组,用于存储学生的学号和成绩。
2. 从键盘输入班级人数,然后循环输入每个学生的学号和成绩,直到输入为负值时停止输入。
3. 从键盘输入要查找的学号。
4. 循环遍历数组,查找该学号对应的成绩并输出。
5. 如果没有找到对应的学号,则输出“未找到该学号”。
下面是程序的详细实现:
```python
# 声明一个长度为40的数组,用于存储学号和成绩
scores = []
# 从键盘输入班级人数
num = int(input("请输入班级人数:"))
# 循环输入每个学生的学号和成绩,直到输入为负值时停止输入
for i in range(num):
print("请输入第%d个学生的学号和成绩,以空格分隔,输入负值结束:" % (i+1))
input_str = input()
input_list = input_str.split()
# 如果输入为负值,则停止输入
if int(input_list[1]) < 0:
break
# 将学号和成绩存入数组
scores.append((input_list[0], int(input_list[1])))
# 从键盘输入要查找的学号
query_id = input("请输入要查找的学号:")
# 循环遍历数组,查找该学号对应的成绩并输出
found_flag = False
for score in scores:
if score[0] == query_id:
print("该学生的成绩为:", score[1])
found_flag = True
break
# 如果没有找到对应的学号,则输出“未找到该学号”
if not found_flag:
print("未找到该学号")
```
需要注意的是,在输入数据时必须保证输入的学号和成绩对应正确,否则程序会出现异常。此外,如果班级人数为0,则程序会直接结束。
阅读全文