用c语言某班级有M(M不小于10)个学生,参加N(N不多于5)门科目的考试。M和N可以通过键盘输入。现要求编程实现: (1)录入每个学生的信息,每位学生的信息包括:姓名、学号、出生日期、每门考试成绩。 (2)计算该班级每门课程的平均成绩并输出。 (3)输入任意学号,输出该学号对应学生的其他所有信息。 (4)输入任意学号,输出该学生成绩的综合等级。综合等级按照学生N门课程的平均分进行判定。其中,平均分属于(90~100),包括90,判断等级为A;(80~90),包括80,判断等级为B;(60~80),包括6
时间: 2024-01-19 15:03:11 浏览: 108
c代码-输入全班学生的人数,输入全班学生的分数,并显示出他们的总分和平均分。
以下是一个实现上述要求的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
#define MAX_COURSES 5
struct student {
char name[20];
char id[20];
char birth[20];
float score[MAX_COURSES];
};
int main() {
int n_students, n_courses;
printf("请输入学生人数和科目数(以空格分隔):");
scanf("%d %d", &n_students, &n_courses);
struct student students[MAX_STUDENTS];
float avg_score[MAX_COURSES] = {0};
int i, j, k;
// 录入每个学生的信息
for (i = 0; i < n_students; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("姓名:");
scanf("%s", students[i].name);
printf("学号:");
scanf("%s", students[i].id);
printf("出生日期:");
scanf("%s", students[i].birth);
printf("各科成绩(以空格分隔):");
for (j = 0; j < n_courses; j++) {
scanf("%f", &students[i].score[j]);
avg_score[j] += students[i].score[j];
}
}
// 计算每门课程的平均成绩并输出
printf("各科平均成绩:");
for (j = 0; j < n_courses; j++) {
avg_score[j] /= n_students;
printf("%.2f ", avg_score[j]);
}
printf("\n");
// 输入任意学号,输出该学号对应学生的其他所有信息
char target_id[20];
printf("请输入要查询的学号:");
scanf("%s", target_id);
for (i = 0; i < n_students; i++) {
if (strcmp(students[i].id, target_id) == 0) {
printf("姓名:%s\n", students[i].name);
printf("学号:%s\n", students[i].id);
printf("出生日期:%s\n", students[i].birth);
printf("各科成绩:");
for (j = 0; j < n_courses; j++) {
printf("%.2f ", students[i].score[j]);
}
printf("\n");
break;
}
}
if (i == n_students) {
printf("未找到该学号对应的学生。\n");
}
// 输入任意学号,输出该学生成绩的综合等级
printf("请输入要查询的学号:");
scanf("%s", target_id);
float avg = 0;
for (i = 0; i < n_students; i++) {
if (strcmp(students[i].id, target_id) == 0) {
for (j = 0; j < n_courses; j++) {
avg += students[i].score[j];
}
avg /= n_courses;
printf("该学生的平均成绩为:%.2f,综合等级为:", avg);
if (avg >= 90) {
printf("A\n");
} else if (avg >= 80) {
printf("B\n");
} else if (avg >= 60) {
printf("C\n");
} else {
printf("D\n");
}
break;
}
}
if (i == n_students) {
printf("未找到该学号对应的学生。\n");
}
return 0;
}
```
这段代码使用了结构体来存储每个学生的信息,其中包括姓名、学号、出生日期和每门考试的成绩。使用循环依次录入每个学生的信息,并计算每门课程的平均成绩。使用另外两个循环来实现查询学生信息和成绩等级的功能。
阅读全文