更新: 私はプログラムをコンパイルして実行することができました。しかし、ジャッジスコア値2.3の変数は、奇妙な方法で格納され、計算をスローしています。私は2.3を入力すると、ストアの値は2.299999999998です - これはなぜですか?スコアを入力すると最終スコアが0.3になるため、calcScoreまたは最低および最高の関数がエラーになることがあります。2.3 - 5.5 - 5.5 - 5.5 - 8.5 - 任意のアイデア?C++エラー: 'int'の前にprimary-expressionが必要ですか?
// file name starSearch.cpp
// author: SK
// last modified: 03/19/2012
#include <iostream>
#include <iomanip>
using namespace std;
//function prototypes
void getJudgeData(double &);
void calcScore(double, double, double, double, double);
int findLowest(double, double, double, double, double);
int findHighest(double, double, double, double, double);
//declare variables
double score1;
double score2;
double score3;
double score4;
double score5;
int main()
{
getJudgeData(score1); //Call getJudgeData for first judge score
getJudgeData(score2); //Call getJudgeData for second judge score
getJudgeData(score3); //Call getJudgeData for third judge score
getJudgeData(score4); //Call getJudgeData for fourth judge score
getJudgeData(score5); //Call getJudgeData for fifth judge score
calcScore(score1, score2, score3, score4, score5); //calculate contestant score
return 0;
}
//
//Begin function prototypes definitions
//
//defines calcScore.
void calcScore(double score1, double score2, double score3, double score4, double score5)
{
double total = (score1 + score2 + score3 + score4 + score5 - findLowest(score1, score2, score3, score4, score5) - findHighest(score1, score2, score3, score4, score5))/3;
cout << setprecision(2);
cout << "The contestant's final score is: " << total << endl;
}
//defines getJudgeData. this function asks each judge for their score.
void getJudgeData(double &score)
{
cout << "Judge, enter the contestant's score: ";
cin >> score;
if (score < 0 || score > 10) //validate score between 0-10, else display error msg
{
cout << "ERROR: Enter a value in the range 0-10.\n";
return getJudgeData(score);
}
return;
}
//defines findLowest. this function returns the lowest score entered.
int findLowest(double score1, double score2, double score3, double score4, double score5)
{
if (score1 < score2 && score1 < score3 && score1 < score4 && score1 < score5)
{
return score1;
}
else if (score2 < score1 && score2 < score3 && score2 < score4 && score2 < score5)
{
return score2;
}
else if (score3 < score1 && score3 < score2 && score3 < score4 && score3 < score5)
{
return score3;
}
else if (score4 < score1 && score4 < score2 && score4 < score3 && score4 < score5)
{
return score4;
}
else if (score5 < score1 && score5 < score2 && score5 < score3 && score5 < score4)
{
return score5;
}
}
//defines findHighest. this functio returns the highest score entered.
int findHighest(double score1, double score2, double score3, double score4, double score5)
{
if (score1 > score2 && score1 > score3 && score1 > score4 && score1 > score5)
{
return score1;
}
else if (score2 > score1 && score2 > score3 && score3 > score4 && score3 > score5)
{
return score2;
}
else if (score3 > score1 && score3 > score2 && score3 > score4 && score3 > score5)
{
return score3;
}
else if (score4 > score1 && score4 > score2 && score4 > score3 && score4 > score5)
{
return score4;
}
else if (score5 > score1 && score5 > score2 && score5 > score3 && score5 > score4)
{
return score5;
}
}
ORIGINAL:
私はちょうど5点の得点を平均と最低を削除する方法を考え出すと最高カント私の代数式が整数3で書かれているライン39上のコンパイラエラーを取得しています。最高と最低を決定する関数は順番になっているようですが..助けてください。
ありがとうございます。
*// file name starSearch.cpp
// author: SK
// last modified: 03/19/2012
#include <iostream>
using namespace std;
//function prototypes
void getJudgeData(double);
void calcScore();
int findLowest();
int findHighest();
//declare variables
double score1;
double score2;
double score3;
double score4;
double score5;
int main()
{
getJudgeData(score1); //Call getJudgeData for first judge score
getJudgeData(score2); //Call getJudgeData for second judge score
getJudgeData(score3); //Call getJudgeData for third judge score
getJudgeData(score4); //Call getJudgeData for fourth judge score
getJudgeData(score5); //Call getJudgeData for fifth judge score
calcScore(); //calculate contestant score
return 0;
}
//
//Begin funtion prototypes definitions
//
//defines calcScore.
void calcScore(double score1, double score2, double score3, double score4, double score5)
{
double total = score1 + score2 + score3 + score4 + score5 - int findLowest(a, b, c, d, e) - intfindHighest(a, b, c, d, e)/3;
cout << "The contestant's final score is: " << total << endl;
}
//defines getJudgeData. this function asks each judge for their score.
void getJudgeData(double score)
{
cout << "Judge, enter the contestant's score: ";
cin >> score;
if (score < 0 || score > 10) //validate score between 0-10, else display error msg
{
cout << "ERROR: Enter a value in the range 0-10: ";
cin >> score;
}
else
return;
}
//defines findLowest. this function returns the lowest score entered.
int findLowest(double score1, double score2, double score3, double score4, double score5)
{
if (score1 < score2, score3, score4, score5)
{
return score1;
}
else if (score2 < score1, score3, score4, score5)
{
return score2;
}
else if (score3 < score1, score2, score4, score5)
{
return score3;
}
else if (score4 < score1, score2, score3, score5)
{
return score4;
}
else if (score5 < score1, score2, score3, score4)
{
return score5;
}
}
//defines findHighest. this functio returns the highest score entered.
int findHighest(double score1, double score2, double score3, double score4, double score5)
{
if (score1 > score2, score3, score4, score5)
{
return score1;
}
else if (score2 > score1, score3, score4, score5)
{
return score2;
}
else if (score3 > score1, score2, score4, score5)
{
return score3;
}
else if (score4 > score1, score2, score3, score5)
{
return score4;
}
else if (score5 > score1, score2, score3, score4)
{
return score5;
}
}*
なぜ表現の途中に 'int findLowest(...)'がありますか? – tpg2114
は答えませんでしたが、最後に '}'を '}' –
に置き換えたいと思うかもしれませんが、実際のコードではないと私は思っています。ありがとう! – user1278971