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

1)Grades with input validation (C++). Modify grade programs with arrays and func

ID: 3681788 • Letter: 1

Question

1)Grades with input validation (C++). Modify grade programs with arrays and functions. (the program should minimally have functions for average, min, max, # above average, etc. total of 4 functions) Add logic (to the main) so that if the user enters an invalid grade (lower than zero, higher than 100), the user will be issued an error message and then be allowed to reenter the grade. This will repeat as long as the user enters invalid grades. You will need a While loop. (See next slide for hints.) (filename = "grade-validation.cpp"). Include adequate testing and sample output.

Here is my code im having trouble with the while loop and the minimum function

#include <iostream>
using namespace std;

double average(double x[], int n);
double maximum(double x[], int n);
double minimum(double x[], int n);
int nAboveAvg(double x[], int n);

int main()
{
double grades[50];
int ngrades;

cout<<"How many grades? (max = 50) ";
cin>>ngrades;

//create for loop to get grades from user
for(int i = 0; i<ngrades; i++)
{
  cout<<"Enter grade ";
  cin>> grades[i];
  while(grades[i]< 0 || grades[i] > 100)
  {
   cout<<"Invalid grade- please enter again"<<endl;
   cin>>grades[i]
  }
}

//call the functions
double avg = average(grades, ngrades);
double max = maximum(grades, ngrades);
double min = minimum(grades, ngrades);
int nAbove = nAboveAvg(grades, ngrades);
//display results

cout << "Average = " << avg << endl;
cout << "# above average = " << nAbove << endl;
cout<<"Max value is = "<<max<<endl;
cout<<"Min value is = "<<min<<endl;


}


double average(double x[], int npts) //define the functon to recieve the array
{

double sum = 0;
for(int k = 0; k<npts; k++)
{
  sum = sum +x[k];

}
return sum / npts;
}

double maximum(double x[], int npts)
{

    double max = x[0];

    for(int i = 0; i < npts; i++)
{
        if(x[i] > max)
  {
       
            max = x[i];
        }
    }
    return max;
}

double minimum(double x[], int npts)
{

    double min = x[0];

    for(int i = 0; i < npts; i++)
{
        if(x[i] < min)
  {
       
            min = x[i];
        }
    }
    return min;
}
int nAboveAvg(double x[], int npts)
{
    int count = 0;
    double avg = average(x, npts);

    for(int i=0; i < npts; ++i) {
        if(x[i] > avg)
  {
            count++;
        }
    }
    return count;
}

Explanation / Answer


#include <iostream>
using namespace std;

double average(double x[], int n);
double maximum(double x[], int n);
double minimum(double x[], int n);
int nAboveAvg(double x[], int n);



int main()
{
double grades[50];
int ngrades;

cout<<"How many grades? (max = 50) ";
cin>>ngrades;

//create for loop to get grades from user
for(int i = 0; i<ngrades; i++)
{
cout<<"Enter grade ";
cin>> grades[i];
while(grades[i]< 0 || grades[i] > 100)
{
cout<<"Invalid grade- please enter again"<<endl;
cin>>grades[i];
if(grades[i]>= 0 && grades[i] <= 100){
        break;
}
}
}

//call the functions
double avg = average(grades, ngrades);
double max = maximum(grades, ngrades);
double min = minimum(grades, ngrades);
int nAbove = nAboveAvg(grades, ngrades);
//display results

cout << "Average = " << avg << endl;
cout << "# above average = " << nAbove << endl;
cout<<"Max value is = "<<max<<endl;
cout<<"Min value is = "<<min<<endl;


}

double average(double x[], int npts) //define the functon to recieve the array
{

double sum = 0;
for(int k = 0; k<npts; k++)
{
sum = sum +x[k];

}
return sum / npts;
}

double maximum(double x[], int npts)
{

double max = x[0];

for(int i = 0; i < npts; i++){
if(x[i] > max) {

max = x[i];
}
}
return max;
}

double minimum(double x[], int npts)
{

double min = x[0];

for(int i = 0; i < npts; i++) {
if(x[i] < min){

min = x[i];
}
}
return min;
}
int nAboveAvg(double x[], int npts)
{
int count = 0;
double avg = average(x, npts);

for(int i=0; i < npts; ++i) {
if(x[i] > avg){
count++;
}
}
return count;
}