我如何找到整个班级的平均水平?

问题描述

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
struct Students
{
    char name[30];
    char first_name[30];
    int n1;
    int n2;
    int n3;
}student list[10];

    int n;
void reading_student_list()
{
    int i;
    ifstream f("in.txt");
    f>>n;
    for(i=0;i<n;i++)
    {
        f>>student_list[i].name;
        f>>student_list[i].first_name;
        f>>student_list[i].n1;
        f>>student_list[i].n2;
        f>>student_list[i].n3;
    }
    f.close();
}
void showing_student_list()
{
    int i;
    ofstream g("out.txt");
    g<<"\n Student list: ";
    for(i=0;i<n;i++)
    {
        g<<"\n\n";
        g<<student_list[i].name<<" ";
        g<<student_list[i].first_name<<" ";
        g<<student_list[i].n1<<" ";
        g<<student_list[i].n2<<" ";
        g<<student_list[i].n3<<" ";
        g<<endl<<"Average: "<<float(student_list[i].n1+student_list[i].n2+student_list[i].n3)/3;
    }
    cout<<"\n Open file out.txt";
    g.close();
}
    int main()
    {
        reading_student_list();
        showing_student_list();
    }

我计算了每个学生的平均成绩,但我不知道如何找到整个班级的平均成绩。

在对整个班级进行平均之后,我可以算出平均水平低于班级平均水平和班级最高平均水平的学生。

解决方法

这是您将所有n1值(无论如何)加起来的方法。

int total = 0;               // start the total at zero
for (int i = 0; i < n; i++)  // for each student
    total += list[i].n1;     // add list[i].n1 to total

希望您可以对其进行调整以满足您的特定要求。