我尝试编写一个函数,要求用户提供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;
}
答案 0 :(得分:8)
你的findHighest()
函数看起来很好(有点),但你永远不会打电话给它:
Highest = Highest;
而是将Highest
分配给自己,BTW可以是任何值。
如果您调试了程序,可以自己找到。