用C语言写:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),其中学号和姓名都是以字符串方式存储,计算出每名学生的平均成绩, 输入格式: 分别在5行中输入5名学生的信息。按照学号、姓名、3门课的成绩顺序输入,学号和姓名是均不超过4个字符的字符串,字符串中不包含空格、换行符和制表符,一名学生的各个数据之间用一个空格间隔。 输出格式: 分别在5行中输出5名学生的信息。按照学号、姓名、3门课的平均成绩顺序输出,其中学号和姓名输出占5列列宽,平均成绩保留1位小数,输出占5列列宽。
时间: 2023-12-24 13:04:13 浏览: 215
以下是用C语言编写的代码:
```c
#include <stdio.h>
#include <string.h>
#define NUM_STUDENTS 5
#define NUM_COURSES 3
struct Student {
char id[5];
char name[5];
float scores[NUM_COURSES];
};
int main() {
struct Student students[NUM_STUDENTS];
// 输入学生信息
for (int i = 0; i < NUM_STUDENTS; i++) {
scanf("%s %s", students[i].id, students[i].name);
for (int j = 0; j < NUM_COURSES; j++) {
scanf("%f", &students[i].scores[j]);
}
}
// 计算平均成绩并输出
printf("%-5s%-5s%-5s%-5s%-5s\n", "学号", "姓名", "成绩1", "成绩2", "成绩3");
for (int i = 0; i < NUM_STUDENTS; i++) {
float sum = 0;
for (int j = 0; j < NUM_COURSES; j++) {
sum += students[i].scores[j];
}
float avg = sum / NUM_COURSES;
printf("%-5s%-5s%-5.1f%-5.1f%-5.1f\n", students[i].id, students[i].name,
students[i].scores[0], students[i].scores[1], students[i].scores[2], avg);
}
return 0;
}
```
这个程序定义了一个 `Student` 结构体,包含学号、姓名和三门课的成绩。程序首先从键盘输入五个学生的信息,然后计算每个学生的平均成绩并输出。输出格式要求学号和姓名占5列宽,平均成绩保留1位小数,输出也占5列宽。
阅读全文