私は最初の教科書のC ++の割り当てに取り組んでいます。最高点と最低点を落とす配列からの基本的な計算です。実行するたびに、答えとして0が得られます。問題はメインまたは計算スコアにあると思います。これを見て数分かかることを厭わない人に感謝します。
#include <iostream>
using namespace std;
void printHeader(int judges);
void enterData (float scores[], int judges, float difficulty);
float calculateScore(float scores[], const int judges, float difficulty, int maxScore, int least);
int indexofLeast(float scores[], const int judges);
int indexofMax(float scores[], const int judges);
int main () {
const int judges = 7;
float scores [judges];
float difficulty = 0;
int maxScore = indexofMax(scores, judges);
int least = indexofLeast(scores, judges);
float finalscore = calculateScore(scores, judges, difficulty, maxScore, least);
printHeader (judges);
enterData (scores, judges, difficulty); // get user input
indexofLeast(scores, judges); // find lowest score
indexofMax(scores, judges); // find highest score
calculateScore (scores, judges, difficulty, maxScore, least); // get final score
cout << "The final score is " << finalscore << '\n';
return 0;
}
void printHeader(const int judges) {
cout << "This program calculates a divers score over" << judges << "judges" << endl;
}
void enterData(float scores[], const int judges, float difficulty) {
for (int i = 0; i < judges; i++){
cout <<"Enter score for judge " << i+1 << endl;
cin >> scores[i];
}
cout << "Enter difficulty: "<< endl;
cin >> difficulty;
}
float calculateScore(float scores[], const int judges, float difficulty, int maxScore, int least) {
float sum = 0;
for (int i = 0; i < judges; i++) {
sum += scores[i];
}
return (sum - scores[least] - scores[maxScore]) * difficulty * 0.6;
}
int indexofLeast(float scores[], const int judges) {
int least = 0;
for (int i = 1; i< judges; i++) {
if (scores[i] < scores[least])
least = i;
}
return least;
}
int indexofMax(float scores[], const int judges) {
int maxScore = 0;
for (int i = 1; i< judges; i++) {
if (scores[i] > scores[maxScore])
maxScore = i;
}
return maxScore;
}
予想される入力として、7 つのスコア (0 から 10 の間) を入力しました: 1、2、2、4、5、8、10 最高と最低の 1 と 10 を削除します。合計 = 21 1.2 と 4.0 の間の難易度: 3.0 したがって、21 * 3.0 * 0.6 = 37.8 期待される入出力に対して、実際には -0 を取得します