C++ 在一个函数中使用类的每个成员计算平均值

C++ 在一个函数中使用类的每个成员计算平均值,c++,class,for-loop,C++,Class,For Loop,我有一个考试成绩为4分的班级。Test1-Test4。我想创建一个名为mean的函数,它将计算课程中每次考试的平均值,并将其存储在mean数组中。但我似乎无法通过一个循环来实现这一点: class Cstudent { public: string firstName, lastName; int test1, test2, test3, test4; float average; }; /* Here is the problem, the next time i g

我有一个考试成绩为4分的班级。Test1-Test4。我想创建一个名为mean的函数,它将计算课程中每次考试的平均值,并将其存储在mean数组中。但我似乎无法通过一个循环来实现这一点:

class Cstudent
{
public:
    string firstName, lastName;
    int test1, test2, test3, test4;
    float average;
};

/* Here is the problem, the next time i go through the loop, i want to store the sum of
test2 in to sum[1] after already storing the total in to sum[0] for test 1 */

float mean(Cstudent section[], int n)
{
    int sum[NUMBEROFEXAMS];
    float mean[NUMBEROFEXAMS];
    for(int i = 0; i < NUMBEROFEXAMS; i++)
        for(int j = 0; j < n; j++){
            sum[i] += section[j].test1;
        }

}
class-Cstudent
{
公众:
字符串firstName,lastName;
int test1、test2、test3、test4;
浮动平均;
};
/*问题是,下次我通过循环时,我想存储
在已将测试1的总计存储到总计[0]之后,将测试2计入总计[1]*/
浮动平均值(Cstudent段[],整数n)
{
整数和[考试次数];
浮动平均值[检查次数];
对于(int i=0;i
将分数存储在数组中会更容易:

#include <array>

class Student
{
public:
    string firstName, lastName;
    std::array<int, 4> test;
    float average;
};
#包括
班级学生
{
公众:
字符串firstName,lastName;
阵列测试;
浮动平均;
};
然后您可以轻松获得平均值:

#include <algorithm> // for std::accumulate

Student s = ....;
...
float avg = std::accumulate(s.test.begin(), s.test.end(), 1.0)/s.test.size();
#包含//用于std::累加
学生s=。。。。;
...
float avg=std::累加(s.test.begin()、s.test.end()、1.0)/s.test.size();

将分数存储在数组中会更容易:

#include <array>

class Student
{
public:
    string firstName, lastName;
    std::array<int, 4> test;
    float average;
};
#包括
班级学生
{
公众:
字符串firstName,lastName;
阵列测试;
浮动平均;
};
然后您可以轻松获得平均值:

#include <algorithm> // for std::accumulate

Student s = ....;
...
float avg = std::accumulate(s.test.begin(), s.test.end(), 1.0)/s.test.size();
#包含//用于std::累加
学生s=。。。。;
...
float avg=std::累加(s.test.begin()、s.test.end()、1.0)/s.test.size();
你的意思是:

float mean(Cstudent section[], int n)
{
    int sum[NUMBEROFEXAMS];
    float mean[NUMBEROFEXAMS];
    for(int i = 0; i < NUMBEROFEXAMS; i+=4)
        for(int j = 0; j < n; j++){
            sum[i] += section[j].test1;
            sum[i+1] += section[j].test2;
            sum[i+2] += section[j].test3;
            sum[i+3] += section[j].test4;
        }

}
浮动平均值(Cstudent段[],int n)
{
整数和[考试次数];
浮动平均值[检查次数];
对于(int i=0;i
你的意思是:

float mean(Cstudent section[], int n)
{
    int sum[NUMBEROFEXAMS];
    float mean[NUMBEROFEXAMS];
    for(int i = 0; i < NUMBEROFEXAMS; i+=4)
        for(int j = 0; j < n; j++){
            sum[i] += section[j].test1;
            sum[i+1] += section[j].test2;
            sum[i+2] += section[j].test3;
            sum[i+3] += section[j].test4;
        }

}
浮动平均值(Cstudent段[],int n)
{
整数和[考试次数];
浮动平均值[检查次数];
对于(int i=0;i