c语言设有学生信息如下:学号(长整型)、姓名(字符串型)、年龄(整型)、课程1成绩(实型)、课程2成绩(实型)、课程3成绩(实型)、课程4成绩(实型)、课程5成绩(实型)、课程6成绩(实型)、课程6成绩(实型)、总分(实型)、平均分(实型)。试编写程序,输入3个学生的上述信息,计算每个学生的总分、平均分,然后输出每个学生学号、姓名、总分、平均分。
时间: 2023-07-04 10:04:45 浏览: 201
以下是一个简单的实现,其中使用结构体来存储学生信息:
```c
#include <stdio.h>
#include <string.h>
#define NUM_COURSES 6
struct student {
long student_id;
char name[50];
int age;
float grades[NUM_COURSES];
float total_grade;
float average_grade;
};
int main() {
struct student students[3];
// 输入学生信息
for (int i = 0; i < 3; i++) {
printf("请输入第 %d 个学生的信息:\n", i + 1);
printf("学号:");
scanf("%ld", &students[i].student_id);
printf("姓名:");
scanf("%s", students[i].name);
printf("年龄:");
scanf("%d", &students[i].age);
for (int j = 0; j < NUM_COURSES; j++) {
printf("课程%d成绩:", j + 1);
scanf("%f", &students[i].grades[j]);
}
printf("\n");
}
// 计算总分和平均分
for (int i = 0; i < 3; i++) {
float total = 0;
for (int j = 0; j < NUM_COURSES; j++) {
total += students[i].grades[j];
}
students[i].total_grade = total;
students[i].average_grade = total / NUM_COURSES;
}
// 输出学生信息
printf("学号\t姓名\t总分\t平均分\n");
for (int i = 0; i < 3; i++) {
printf("%ld\t%s\t%.2f\t%.2f\n", students[i].student_id, students[i].name,
students[i].total_grade, students[i].average_grade);
}
return 0;
}
```
注意这里使用了 `scanf` 函数来读取用户输入的数据,其中 `%s` 表示读取一个字符串,`%ld` 表示读取一个长整型数,`%d` 表示读取一个整型数,`%f` 表示读取一个浮点型数。另外,`%.2f` 是输出浮点数时保留两位小数的格式化字符串。
阅读全文