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

Selection Sort (C++). Add selection sort function to grade program above. Progra

ID: 3681839 • Letter: S

Question

Selection Sort (C++). Add selection sort function to grade program above. Program should display list of grades in sorted ascending order. (filename = "grade-sort.cpp"). Include testing and sample output. (Hint: do not modify the selection sort function in any way!!)

Here is the selection sort program you cant change

void sort(double x[], int npts)
{
double min_value;
int min_index;
double temp;
for(int i= 0; i<npts - 1; i++)
{
  for(int j = i + 1; j<npts; j++)
  {
   if(x[j] < min_value)
   {
    min_value = x[i];
    min_index = j;
   }
  }
  
  temp = x[min_index];
  x[min_index] = x[i];
  x[i] = temp;
}
return;
}

and heres the main 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);
void sort(double x[], int npts);


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;


}

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);
void sort(double x[], int npts);


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);

sort(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;
cout<<"Sorted Array is :"<<endl;
for(int i = 0; i<ngrades; i++)
{
cout<<grades[i]<<" ";
}


}
void sort(double x[], int npts)
{
double min_value;
int min_index;
double temp;
for(int i= 0; i<npts ; i++)
{

for(int j = i + 1; j<npts; j++)
{
if(x[j] < x[i])
{
temp = x[j];
x[j] = x[i];
x[i] = temp;
}
}


}
return;
}
double average(double x[], int n)
{
double sum=0.0d,avg;
for(int i=0; i<n; i++)
sum+=x[i];
avg=sum/double(n);
return avg;
}
double maximum(double x[], int n)
{
double max=x[0];
for(int i=1; i<n; i++)
{
if(max<x[i])
max=x[i];
}
return max;
}
double minimum(double x[], int n)
{
double min=x[0];
for(int i=1; i<n; i++)
{
if(min>x[i])
min=x[i];
}
return min;
}
int nAboveAvg(double x[], int n)
{

int count=0;
double averageVal=average(x,n);
for(int i=0; i<n; i++)
{
if(averageVal<x[i])
count++;
}

return count;

}

OUTPUT:

Test 1:
How many grades? (max = 50) 5
Enter grade 3
Enter grade 3.2
Enter grade 5.3
Enter grade 4
Enter grade 3.1
Average = 3.72
# above average = 2
Max value is = 5.3
Min value is = 3
Sorted Array is :
3 3.1 3.2 4 5.3
Process returned 0 (0x0) execution time : 16.177 s
Press any key to continue.

Test 2:
How many grades? (max = 50) 7
Enter grade 4.3
Enter grade 5.3
Enter grade 3.2
Enter grade 2.3
Enter grade 1.3
Enter grade 1.4
Enter grade 9.6
Average = 3.91429
# above average = 3
Max value is = 9.6
Min value is = 1.3
Sorted Array is :
1.3 1.4 2.3 3.2 4.3 5.3 9.6
Process returned 0 (0x0) execution time : 19.256 s
Press any key to continue.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote