C++中错误的计算方法

Erroneous calculation method in C++

本文关键字:计算 方法 错误 C++      更新时间:2023-10-16

我正在参加一门C++初学者课程,现在我正在为一项作业而挣扎。任务是:

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

•int getJudgeData()应该向用户询问法官的分数,将其存储在一个参考参数变量中,并对其进行验证。main应该为5名法官中的每一位调用一次该函数。

•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 scoresn";
    cout<<"Your average score is "<<sum << endl;
return 0;
}

EDIT:我在findHighest和findLowest函数中放入了cout语句,以检查它确定的数字是正确的,每次它选择正确的最高数字时,对于最低数字,它将具有0

编辑二:我发现无论输入什么,程序都会将分数一设置为0。该程序对其他分数进行正确输入

快速查看后,您的代码应该可以工作了。再次运行一遍,并确保每个if语句与您想要做的内容一致。如果这不起作用,您可以尝试另一种方法,即

double lowest = oneScore;
if (twoScore < lowest)
    lowest = twoScore;
if(threeScore < lowest)
    lowest = threeScore;
etc...

calcAverage()函数可能只是因为lowest()和hihgest()函数而失败。

编辑:如果你已经学会了数组,用它来声明一个分数数组,然后用for循环来迭代,正如Paul在评论中暗示的那样