我有一个程序假设用户输入5分,然后程序将找到输入的最高和最低数字并消除它们,然后找到剩余数字的平均值。
如果得分二是最低的,程序没有计算正确的平均值,所以我在findLowest函数中放了几个语句,发现它没有正确记录得分。
我不确定为什么它会一直消除第一个分数。因为只有五个分数,所以最好还是单独询问每个分数
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;
}
答案 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]);