C++ 应用程序记录错误的分数

C++ 应用程序记录错误的分数,c++,C++,我有一个程序,假设用户输入5分,然后程序将找到输入的最高和最低数字,并消除它们,然后找到剩余数字的平均值 如果分数2是最低的,程序没有计算正确的平均值,所以我在findLowest函数中放了一些out语句,发现它没有正确记录分数。 我不知道为什么它总是排除第一个分数。因为只有五个分数,所以最好单独问每个分数 int main() { string judges[] = {"Judge 1","Judge 2","Judge 3","Judge 4","Judge 5"}; in

我有一个程序,假设用户输入5分,然后程序将找到输入的最高和最低数字,并消除它们,然后找到剩余数字的平均值

如果分数2是最低的,程序没有计算正确的平均值,所以我在findLowest函数中放了一些out语句,发现它没有正确记录分数。

我不知道为什么它总是排除第一个分数。因为只有五个分数,所以最好单独问每个分数

int main()
{
    string judges[] = {"Judge 1","Judge 2","Judge 3","Judge 4","Judge 5"};
    int score[] = {0,0,0,0,0,0};

    for ( int i=0; i<5 ;i++ )
    {
        score[i] = getJudgeData(judges[i]);
    }
    calcAverage(score[1],score[2],score[3],score[4],score[5]);

return 0;
}
intmain()
{
字符串法官[]={“法官1”、“法官2”、“法官3”、“法官4”、“法官5”};
整数分数[]={0,0,0,0,0};
对于(int i=0;i 10)
{
库特
这在语法和逻辑上都是错误的。语法上,当您试图访问数组超出其界限时,这是一种未定义的行为。逻辑上,当您不考虑初始值(arr[0])

这应该是:-

calcAverage(score[0],score[1],score[2],score[3],score[4]);
calcAverage(score[1],score[2],score[3],score[4],score[5]);
calcAverage(score[0],score[1],score[2],score[3],score[4]);