Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在球员评分程序中显示低于平均分_C++_Arrays_If Statement_Average - Fatal编程技术网

C++ 在球员评分程序中显示低于平均分

C++ 在球员评分程序中显示低于平均分,c++,arrays,if-statement,average,C++,Arrays,If Statement,Average,我正在尝试创建一个程序,用户最多可以输入100名球员的姓名和分数,然后让它打印出所有球员的姓名和分数,然后是平均分数,最后显示分数低于平均水平的球员。除了最后一篇,我都做到了,成绩低于平均水平。我有点不确定该怎么做。在我的DesplayBelowAverage函数中,我试图让它读取当前玩家的分数,并将其与平均值进行比较,看看是否应将其打印为低于平均值的分数,但它似乎无法识别我在CalculateAverageCores函数中创建的averageScore值。这是我的密码: #include &l

我正在尝试创建一个程序,用户最多可以输入100名球员的姓名和分数,然后让它打印出所有球员的姓名和分数,然后是平均分数,最后显示分数低于平均水平的球员。除了最后一篇,我都做到了,成绩低于平均水平。我有点不确定该怎么做。在我的DesplayBelowAverage函数中,我试图让它读取当前玩家的分数,并将其与平均值进行比较,看看是否应将其打印为低于平均值的分数,但它似乎无法识别我在CalculateAverageCores函数中创建的averageScore值。这是我的密码:

#include <iostream>
#include <string>

using namespace std;

int InputData(string [], int [], int);
int CalculateAverageScores(int [], int);
void DisplayPlayerData(string [], int [], int);
void DisplayBelowAverage(string [], int [], int);


void main()
{
    string playerNames[100];
    int scores[100];


    int sizeOfArray = sizeof(scores);
    int sizeOfEachElement = sizeof(scores[0]);
    int numberOfElements = sizeOfArray / sizeOfEachElement;

    cout << numberOfElements << endl;

    int numberEntered = InputData(playerNames, scores, numberOfElements);

    DisplayPlayerData(playerNames, scores, numberEntered);

    CalculateAverageScores(scores, numberEntered);


    cin.ignore();
    cin.get();
}

int InputData(string playerNames[], int scores[], int size)
{
    int index;  

    for (index = 0; index < size; index++)
    {
        cout << "Enter Player Name (Q to quit): ";
        getline(cin, playerNames[index]);
        if (playerNames[index] == "Q")
        {
            break;
        }

        cout << "Enter score for " << playerNames[index] << ": ";
        cin >> scores[index];
        cin.ignore();
    }

    return index;
}


void DisplayPlayerData(string playerNames[], int scores[], int size)
{
    int index;

    cout << "Name     Score" << endl;

    for (index = 0; index < size; index++)
    {       
        cout << playerNames[index] << "     " << scores[index] << endl;     
    }
}

int CalculateAverageScores(int scores[], int size)
{
    int index;
    int totalScore = 0;
    int averageScore = 0;

    for (index = 0; index < size; index++)
    {       
        totalScore = (totalScore + scores[index]);              
    }
    averageScore = totalScore / size;
    cout << "Average Score: " << averageScore;

    return index;
}

void DisplayBelowAverage(string playerNames[], int scores[], int size)
{
    int index;

    cout << "Players who scored below average" << endl;
    cout << "Name     Score" << endl;

    for (index = 0; index < size; index++)
    {       
        if(scores[index] < averageScore)
        {
            cout << playerNames[index] << "     " << scores[index] << endl;
        }
    }
}
#包括
#包括
使用名称空间std;
int-InputData(字符串[],int[],int);
int计算出的内存(int[],int);
void displayerData(字符串[],整数[],整数);
void displaybeloverage(字符串[],整数[],整数);
void main()
{
弦乐演奏家姓名[100];
整数分数[100];
int sizeOfArray=sizeof(分数);
int-sizeOfEachElement=sizeof(分数[0]);
int numberOfElements=sizeOfArray/sizeofeachement;

cout您正在计算
CalculateAverageScore
中的
averageScore
变量,它是该函数的本地变量,因此
DisplayBelowAverage
不知道
averageScore
值。这就是您的逻辑不起作用的原因

要解决此问题,有两种选择:

  • averageScore
    声明为全局变量(尽管不建议使用全局变量)

  • averageScore
    作为参数传递给
    DisplayBelowAverage
    。这是一种更好的方法。因此,您应该返回在
    CalculateAverageScore
    中计算的平均分数,并将其存储在某个变量中,然后将其作为参数传递给
    DisplayBelowAverage
    函数。

    /li>
    希望这有帮助

    乐意帮忙,我希望您正在使用第二种方法