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.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.