#Z0509. [伴随编程]结构体数组的各项求和

[伴随编程]结构体数组的各项求和

#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int score[4];
};

int main() {
    Student stu[3];
   
    for (int i = 0; i < 3; i++) {
        cin >> stu[i].name;
        for (int j = 0; j < 4; j++) {
            cin >> stu[i].score[j];
        }
    }
  
    return 0;
}

与其他变量类型类似,一个自己定义的结构体类型也是可以用于数组声明的。

你可以看到,在这里,我们声明了一个 Student 类型、长度为 3 的数组 stu,并完成了它的读入。

在这里,请注意看清楚 stu[i].score[j] 的两个索引分别写在哪里。想一下,他们分别表示了什么?

接下来,我们希望求出三个同学每人四门课程的平均分,我们可以怎么做呢?

当然是先定义一个用于储存每个人四门课程总分所需的整型数组 sum[3]; 并将其中的元素全部初始化为 0 啦!

请在 Student stu[3]; 之后写下:

int sum[3] = {0, 0, 0};

接下来,我们用一个循环遍历每一个 stu,并在循环中再用一个循环遍历每门课程,将每个学生每门课程的成绩放到对应的累加数组成员中,请在 return 0; 之前写:

for (int i = 0; i < 3; i++) { 
    for (int j = 0; j < 4; j++) {
        sum[i] += stu[i].score[j]; 
    } 
}

你很棒,接下来让我们用一个循环把三个同学四门课程的平均分分别输出出来。

for (int i = 0; i < 3; i++) {
    cout << sum[i] / 4.0 << endl; 
}

现在点击 运行,输入三个学生的名字和每人的四门成绩(想清楚再输入,别犯错误喔)。