双重功能返回0

时间:2014-11-05 23:11:18

标签: c++ function

我尝试编写一个函数,要求用户提供Judges(5)的分数。在通过函数检索得分之后,我试图从不同函数中的那5个得分中找到最高值。我看了我的教科书,并在互联网上搜索可能的原因,我的代码搞砸了但无济于事。将其他人的情况应用于您的代码并不容易。但是目前我的双重功能(findHighest)仅在控制台中显示时返回0。任何洞察为什么我的findHighest函数只返回0?感谢

#include <iostream>
using namespace std;

//Prototypes
void getJudgeData(double& Judge, int i);
double findLowest(double, double, double, double, double);
double findHighest(double, double, double, double, double);

int main()
{
    double Highest, Lowest, Judge, Judge1, Judge2, Judge3, Judge4, Judge5;
    int i=1;
    while (i <= 5)
    {
        getJudgeData(Judge, i);
        if (i == 1)
            Judge1 = Judge;
        if (i == 2)
            Judge2 = Judge;
        if (i == 3)
            Judge3 = Judge;
        if (i == 4)
            Judge4 = Judge;
        if (i == 5)
        {
            Judge5 = Judge;
        }
        i++;
    }
    Highest = Highest;
    cout << "Raw Scores: " << Judge1 << " " << Judge2 << " " << Judge3 << " " << Judge4 << " " << Judge5 << endl;
    cout << "Lowest Score Dropped: " << Lowest << endl;
    cout << "Highest Score Dropped: " << Highest << endl;
    system("pause");
    return 0;
}


void getJudgeData(double& Judge, int i)
{

    cout << "Judge " << i << " Score: ";
    cin >> Judge;
    if (Judge < 0 || Judge > 10)
    {
        cout << "***Invalid Score***" << endl;
        i--;
    }
}

double findHighest(double& Judge1, double& Judge2, double& Judge3, double& Judge4, double& Judge5)
{
    double Highest= Judge1;
    if (Judge2 > Highest)
        Highest = Judge2;
    if (Judge3 > Highest)
        Highest = Judge3;
    if (Judge4 > Highest)
        Highest = Judge4;
    if (Judge5 > Highest)
        Highest = Judge5;

    return (double)Highest;
}

1 个答案:

答案 0 :(得分:8)

你的findHighest()函数看起来很好(有点),但你永远不会打电话给它:

Highest = Highest;

而是将Highest分配给自己,BTW可以是任何值。

如果您调试了程序,可以自己找到。