Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Arrays help. I am trying to solve this problem using arrays and functions, n

ID: 3820577 • Letter: C

Question

C++ Arrays help.

I am trying to solve this problem using arrays and functions, not just functions. Please don't copy and past a program found online as i've seen them. I'd apreciate help understanding it with comments explaining the steps. please use arrays if possible. thank you!

A particular talent competition has five judges, each of whom awards a score between
0 and 10 to each performer. Fractional scores, such as 8.3, are allowed. A performer’s
final score is determined by dropping the highest and lowest score received, then averaging
the three remaining scores. Write a program that uses this method to calculate a
contestant’s score. It should include the following functions:
• void getJudgeData() should ask the user for a judge’s score, store it in a reference
parameter variable, and validate it. This function should be called by main once for
each of the five judges.
• void calcScore() should calculate and display the average of the three scores that
remain after dropping the highest and lowest scores the performer received. This
function should be called just once by main and should be passed the five scores.
The last two functions, described below, should be called by calcScore , which uses
the returned information to determine which of the scores to drop.
• int findLowest() should find and return the lowest of the five scores passed to it.
• int findHighest() should find and return the highest of the five scores passed to it.
Input Validation: Do not accept judge scores lower than 0 or higher than 10.

Explanation / Answer

#include <iostream>
#include <iomanip>
using namespace std;

void getJudgeData(double *score)
{

   do
   {
   cout<<" Enter Judge Score : ";
   cin>>*score;
   }while(*score <=0 && *score >= 10); //validate for inputting data again if not in range
}
double findLowest(double score[5])
{
   int i;
    double lowest = 11;
   for(i=0;i<5;i++)
   {
       if(score[i] < lowest)
       lowest = score[i];   //find lowest by comparing all scores
   }
   return lowest;
}
double findHighest(double score[5])
{
   int i;
   double highest = -1;
   for(i=0;i<5;i++)
   {
       if(score[i] > highest)
       highest = score[i];   //find highest by comparing with all scores
   }
   return highest;
}

void calcScore(double score[5])
{
   double highest = findHighest(score);
   double lowest = findLowest(score);
   double avg = 0;
   cout<<" Highest : "<<highest;
   cout<<" Lowest : "<<lowest;
   int i;
   for(i=0;i<5;i++)
   {
        if(score[i] != highest && score[i] != lowest)
        {
            avg = avg + score[i]; //sum only scores which are not highest and lowest
          
        }
   }
   avg = avg/3;
  
   cout<<" The average score after removing highest and lowest = "<<avg;
  
}

int main()
{
   double score[5];
   int i;
   cout<<fixed<<setprecision(2);
   for(i=0;i<5;i++)
   {
   getJudgeData(&score[i]);
   }
  
   cout<<" Scores given by judges : ";
   for(i=0;i<5;i++)
   {
   cout<<score[i]<<" ";
   }
  
   calcScore(score);
   return 0;
}

output: