C ++中的错误计算方法

时间:2014-11-11 02:52:10

标签: c++ date-arithmetic

我正在参加初学者C ++课程,现在我正在努力完成一项任务。作业是:

  

特定的人才竞赛有5名评委,每名评委都会给每位表演者0到10分。编写一个程序,使用这些规则来计算和显示参赛者的分数。它应包括以下功能:

     

•int getJudgeData()应该询问用户法官的分数,将其存储在参考参数变量中并验证它。对于5名评委中的每一名,这个函数应该由main调用一次。

     

•double calcScore()应计算并返回表演者收到的最高和最低分数后剩下的3个分数的平均值。这个函数应该只用main调用一次,并且应该传递5个分数。

     

下面描述的另外两个函数应该由calcScore调用,它使用返回的信息来确定要删除的分数。

     

•int findLowest()应该找到并返回传递给它的5个分数中的最低分。

     

•int findHighest()应该找到并返回传递给它的5个分数中的最高分。

在测试我的程序时,如果来自法官的分数最低,那么它可以正常工作,但现在它可以适用于任何其他最低的评判。

Ex: I will enter 2,1,5,4,3 so it should drop the 1 & 5 and come out with the avg of 3 but the result is 2.6667

int findLowest()的代码是:

int findLowest(int scoreOne,int scoreTwo,int scoreThree,int scoreFour,int scoreFive)
{
    int lowest = scoreOne;
    if ( scoreTwo < lowest )
        lowest = scoreTwo;
    if ( scoreThree < lowest )
        lowest = scoreThree;
    if ( scoreFour < lowest )
        lowest = scoreFour;
    if ( scoreFive < lowest )
        lowest = scoreFive;

    return lowest;
}

int findHighest类似但显然切换了少于符号。

我的calcAverage()函数:

double calcAverage(double OneScore,double twoScore,double threeScore, double fourScore,double fiveScore)
{
    double lowest, highest, sum;

    lowest=findLowest(OneScore,twoScore,threeScore,fourScore,fiveScore);
    highest=findHighest(OneScore,twoScore,threeScore,fourScore,fiveScore);

    sum = (OneScore + twoScore + threeScore + fourScore + fiveScore);
    sum = sum - lowest;
    sum = sum - highest;
    sum = sum / 3;

    cout<<"\nAfter droping highest and lowest scores\n";
    cout<<"Your average score is "<<sum << endl;

return 0;
}

编辑:我已将cout语句放在findHighest和findLowest函数中,以检查它确定的数字是否正确,每次选择正确的最高数字,而最低数字则为0 < / p>

编辑二:我发现程序将得分1设为0,无论输入的是什么。该程序为其他分数采用正确的输入。

1 个答案:

答案 0 :(得分:1)

快速浏览后,您所拥有的代码应该正常运行。再次运行它并确保每个if语句与您想要执行的操作一致。如果这不起作用,你可以试试

double lowest = oneScore;

if (twoScore < lowest)
    lowest = twoScore;
if(threeScore < lowest)
    lowest = threeScore;

etc...

由于最低()和hihgest()函数,你的calcAverage()函数可能只会失败。

编辑:如果您已经学习了数组,请使用它来声明一个分数数组,然后使用for循环进行迭代,正如保罗在他的评论中暗示的那样