C语言循环加数组编程3. 编写一个程序能够记录五个学生的成绩信息,包括学号,姓名,数学成绩,语文成绩和英语成绩。要求:能够计算出每位学生的三门学科的总分与均分;能够计算出五位学生的各门学科的总分与均分。(不能用指针)
时间: 2024-12-17 19:29:59 浏览: 18
在C语言中,我们可以创建一个结构体来存储学生的信息,并使用数组来存放多个学生的数据。以下是步骤和代码示例:
```c
#include <stdio.h>
// 定义学生信息结构体
typedef struct {
int id; // 学号
char name[50]; // 姓名
float math_score; // 数学成绩
float chinese_score; // 语文成绩
float english_score; // 英语成绩
} Student;
int main() {
// 初始化学生数组,最多5个学生
Student students[5] = {
{1, "张三", 85, 90, 78},
{2, "李四", 92, 88, 85},
{3, "王五", 88, 95, 80},
{4, "赵六", 75, 82, 87},
{5, "刘七", 90, 93, 76}
};
// 计算单个学生的信息
for (int i = 0; i < 5; i++) {
printf("学生%d:\n", students[i].id);
printf("总分: %.1f\n", students[i].math_score + students[i].chinese_score + students[i].english_score);
printf("平均分: %.1f\n", (students[i].math_score + students[i].chinese_score + students[i].english_score) / 3.0);
printf("\n");
}
// 计算所有学生的总分和均分
float total_scores[3] = {0, 0, 0}; // 分别用于累计数学、语文和英语总分
float average_all[] = {0, 0, 0};
for (int j = 0; j < 3; j++) {
for (int i = 0; i < 5; i++) {
total_scores[j] += students[i].scores[j];
}
average_all[j] = total_scores[j] / 5;
}
printf("所有学生总分:\n");
printf("数学: %.1f, 语文: %.1f, 英语: %.1f\n", total_scores[0], total_scores[1], total_scores[2]);
printf("所有学生平均分:\n");
printf("数学: %.1f, 语文: %.1f, 英语: %.1f\n", average_all[0], average_all[1], average_all[2]);
return 0;
}
```
这个程序首先定义了一个学生结构体,然后初始化了包含5个学生数据的数组。接着,它分别计算每个学生和所有学生的总分和均分,并打印出来。
阅读全文