有N个学生,每个学生的数据包括学号、姓名、三门课的成绩。从键盘输入N个学生的数据,然后输出 C语言
时间: 2024-10-10 10:09:17 浏览: 41
有5个学生,么个学生有三门课成绩,从键盘键入以上数据,存放在文件中
5星 · 资源好评率100%
在C语言中,为了处理这样的场景,你可以使用结构体来表示学生的信息,并结合数组或者动态内存分配来进行存储和操作。这里是一个简单的示例,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
int student_id;
char name[50];
float score1, score2, score3; // 三门课程的成绩
} Student;
// 功能函数,用于输入学生信息
void input_student(Student* students, int n) {
for (int i = 0; i < n; i++) {
printf("请输入第%d位学生的学号、姓名及三门成绩:\n", i+1);
scanf("%d%s%f%f%f", &students[i].student_id, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3);
}
}
// 输出学生信息
void output_students(const Student* students, int n) {
for (int i = 0; i < n; i++) {
printf("学生ID:%d, 姓名:%s, 成绩:%.2f, %.2f, %.2f\n",
students[i].student_id, students[i].name, students[i].score1, students[i].score2, students[i].score3);
}
}
int main() {
int num_students;
printf("请输入学生总数:");
scanf("%d", &num_students);
// 创建学生数组
Student* students = (Student*) malloc(num_students * sizeof(Student)); // 用malloc动态分配内存
// 输入学生数据
input_student(students, num_students);
// 输出学生数据
output_students(students, num_students);
// 释放内存
free(students);
return 0;
}
```
阅读全文