저는 C++을 처음 접했고 C#, Python 및 JS에서만 경험할 수있었습니다.배열의 최고/최저 요소를 찾는 데 문제가 발생했습니다.
사용자 입력을 5 점으로 취하여 배열에 저장하려고합니다. 배열을 전달하고 배열의 점수를 평가하여 가장 낮은 값과 가장 높은 값을 찾습니다. 나는 그 둘을 떨어 뜨리고 다른 세 가지 값의 평균을 찾아야합니다. 내 문제는 최고/최저 값을 찾지 못했기 때문입니다. 나는 findLowest()와 findHighest()에서 로직을 가지고 있지만 테스트하기 위해 main()에 동일한 로직을 넣었다. 누군가 나를 배열의 최고/최저 값을 찾는 데 안내 할 수 있습니까? 감사!
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <iomanip>
#include <algorithm>
using namespace std;
void getJudgeData(double score)
{
cin >> score;
if (score > 10 || score < 0)
{
cout << "Invalid score, please enter again." << endl;
cin >> score;
}
else
{
cout << "Thank you." << endl;
}
}
double findLowest(double scores[])
{
double lowScore = *min_element(scores, scores+5);
return lowScore;
}
double findHighest(double scores[])
{
double highScore = *max_element(scores, scores+5);
return highScore;
}
double calcScore(double scores[])
{
double finalScore;
double sum = 0;
double newScore[3] = {};
double lowScore = findLowest(scores);
double highScore = findHighest(scores);
int j = 0;
for (int i=0; i < 5; i++)
{
if (scores[i] != lowScore && scores[i] != highScore)
{
scores[i] = newScore[j];
j++;
}
}
for (int k=0; k < 3; k++)
{
sum = sum + newScore[k];
}
finalScore = sum/3;
return finalScore;
}
int main()
{
double finalScore;
double judgeScores[5] = {};
for (int i = 0; i < 5; ++i)
{
cout << "Enter judge " << i + 1 << "'s score: ";
getJudgeData(judgeScores[i]);
}
finalScore = calcScore(judgeScores);
cout << "Highest score is: " << *max_element(judgeScores, judgeScores+5) << endl;
cout << "The final score is: " << finalScore << endl;
// This prevents the Console Window from closing during debug mode
cin.ignore(cin.rdbuf()->in_avail());
cout << "\nPress only the 'Enter' key to exit program: ";
cin.get();
return 0;
}
, 당신은 누군가가 같은 점수를 여러 번 박았 경우 몇 가지 문제를 가지고가는 될 일이 가장 높은 또는 가장 낮은 점수. –
벡터를 사용하여 벡터 정렬을 시도하고 최고 및 최저 요소 (첫 번째 및 마지막)를 제거합니다. :-) –