申请记录得分错误

时间:2014-11-13 14:06:27

标签: c++

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

如果得分二是最低的,程序没有计算正确的平均值,所以我在findLowest函数中放了几个语句,发现它没有正确记录得分。 a busy cat

我不确定为什么它会一直消除第一个分数。因为只有五个分数,所以最好还是单独询问每个分数

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;
}

对于从用户获得分数的函数:     int getJudgeData(字符串判断)     {         int input = -1;

    while( input < 0 || input > 10 )
    {
    cout << "Enter the score from " << judge <<endl;
    cin >> input;
    }

    return input;
}

1 个答案:

答案 0 :(得分:2)

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

这在语法和逻辑上是错误的。在语法上,当您尝试从其绑定访问数组时,这是未定义的行为。逻辑上,因为您没有考虑初始值(arr [0])。

这应该是: -

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