编写一个函数,接收n个学号的学生,成绩并存储在二维数组中
时间: 2024-12-16 18:19:40 浏览: 7
编写一个函数用于存储学生学号和成绩的二维数组,通常可以按照以下步骤来实现,这里以Python为例:
```python
def store_students(n, students):
# 定义一个二维列表,每行代表一个学生的信息,包含学号和成绩
student_data = [[0] * (2)] * n # 初始化一个空的二维数组
# 提供一个循环结构,让用户输入每个学生的学号和成绩
for i in range(1, n+1): # 从1开始,因为索引是从0开始的
print(f"请输入第{i}个学生的学号:")
student_data[i-1][0] = int(input()) # 学号通常作为整数存储
print("请输入第{i}个学生的成绩:")
student_data[i-1][1] = float(input()) # 成绩可能是浮点数
return student_data
# 调用函数,例如有5名学生
students_count = 5
student_info = store_students(students_count, students_count)
# 打印存储的结果
for student in student_info:
print(f"学号:{student[0]}, 成绩:{student[1]}")
相关问题
从键盘输入某班学生学号和某门课程的成绩(班级人数最多不超过50),试编程从键盘任意输入一个学号,查找该学号学生的成绩。 如果找不到该学号,则输出Not found! 查找过程用自定义函数SearchbyNum实现。
这是一个简单的编程练习,通常使用控制台输入和数组、结构体等数据结构来完成。这里假设我们已经有一个二维数组或结构体来存储学生的信息,其中每一行代表一个学生,包括他们的学号和成绩。
首先,我们可以定义一个结构体 `Student` 来表示一个学生,例如:
```c
struct Student {
int id; // 学号
float score; // 成绩
};
```
接下来,我们需要编写一个函数 `CreateClass()` 用于初始化学生的数据,从键盘输入每个学生的学号和成绩,添加到学生数组中:
```c
void CreateClass(Student students[], int size) {
for (int i = 0; i < size; ++i) {
printf("请输入第%d位学生的学号: ", i + 1);
scanf("%d", &students[i].id);
printf("请输入第%d位学生的成绩: ", i + 1);
scanf("%f", &students[i].score);
}
}
```
现在可以定义 `SearchbyNum()` 函数,它接受一个学生数组和一个学号作为参数,遍历数组查找指定的学生:
```c
bool SearchbyNum(const Student students[], int size, int num, float* result) {
for (int i = 0; i < size; ++i) {
if (students[i].id == num) {
*result = students[i].score;
return true;
}
}
return false; // 找不到指定的学号
}
```
主函数中调用 `CreateClass()` 初始化学生数组,然后从键盘接收用户输入的学号,用 `SearchbyNum()` 函数查找成绩并处理结果:
```c
int main() {
const int MAX_SIZE = 50; // 班级最大人数
Student students[MAX_SIZE];
int inputNum;
float score;
CreateClass(students, MAX_SIZE);
printf("请输入要查找的学生学号: ");
scanf("%d", &inputNum);
if (SearchbyNum(students, MAX_SIZE, inputNum, &score)) {
printf("找到的成绩: %.2f\n", score);
} else {
printf("Not found!\n");
}
return 0;
}
```
这个程序会一直运行直到用户停止输入,或者达到班级最大人数限制。当用户输入一个不存在的学号时,程序将输出 "Not found!"。
阅读全文