Write a program that calculates the average of a group of test scores, where the
ID: 3623701 • Letter: W
Question
Write a program that calculates the average of a group of test scores, where the lowest score in the group is dropped.
#include <iostream>
using namespace std;
int getscore(int);
float calcAverage(int, int, int, int, int);
int findLowest(int, int, int, int, int);
int main()
{
int score1, score2, score3, score4, score5;
getscore(score1);
getscore(score2);
getscore(score3);
getscore(score4);
getscore(score5);
calcAverage(score1, score2, score3, score4, score5);
system("pause");
}
int getscore(int score)
{
cout << "Please Enter Score: ";
cin >> score;
if ( score < 0 || 100 < score )
{
cout << "Please enter number between 0-100!" << endl;
}
return score;
}
float calcAverage(int scr1, int scr2, int scr3, int scr4, int scr5)
{
float average;
int low = findLowest(scr1, scr2, scr3, scr4, scr5);
if ( low == scr1 )
{
average = static_cast<float> (( scr2 + scr3 + scr4 + scr5 ) / 4 );
}
else if ( low == scr2 )
{
average = static_cast<float> (( scr1 + scr3 + scr4 + scr5 ) / 4 );
}
else if ( low == scr3 )
{
average = static_cast<float> (( scr1 + scr2 + scr4 + scr5 ) / 4 );
}
else if ( low == scr4 )
{
average = static_cast<float> (( scr1 + scr2 + scr3 + scr5 ) / 4 );
}
else
{
average = static_cast<float> (( scr1 + scr2 + scr3 + scr4 ) / 4 );
}
cout << "The Average of the scores is: " << average << endl;
}
int findlowest( int scr1, int scr2, int scr3, int scr4, int scr5 )
{
if ( scr1 <= scr2 && scr1 <= scr3 && scr1 <= scr4 && scr1 <= scr5 )
{
return scr1;
}
else if ( scr2 <= scr1 && scr2 <= scr3 && scr2 <= scr4 && scr2 <= scr5 )
{
return scr2;
}
else if ( scr3 <= scr1 && scr1 <= scr2 && scr3 <= scr4 && scr3 <= scr5 )
{
return scr3;
}
else if ( scr4 <= scr1 && scr4 <= scr2 && scr4 <= scr3 && scr4 <= scr5 )
{
return scr4;
}
else
{
return scr5;
}
}
This should be most of it but if anyone could run it and tell me how to fix it that would be great
Explanation / Answer
please rate - thanks
you were almost there
getscore was wrong, and you need to divide by 4. not cast
much easier way to find the average
average=(scr1+scr2+scr3+scr4+scr5-low)/4.0;
#include <iostream>
using namespace std;
int getscore();
float calcAverage(int, int, int, int, int);
int findLowest(int, int, int, int, int);
int main()
{
int score1, score2, score3, score4, score5;
score1= getscore();
score2=getscore();
score3=getscore();
score4=getscore();
score5=getscore();
calcAverage(score1, score2, score3, score4, score5);
system("pause");
}
int getscore( )
{int score;
cout << "Please Enter Score: ";
cin >> score;
if ( score < 0 || 100 < score )
{
cout << "Please enter number between 0-100!" << endl;
}
return score;
}
float calcAverage(int scr1, int scr2, int scr3, int scr4, int scr5)
{
float average;
int low = findLowest(scr1, scr2, scr3, scr4, scr5);
if ( low == scr1 )
{
average = (( scr2 + scr3 + scr4 + scr5 ) / 4. );
}
else if ( low == scr2 )
{
average = (( scr1 + scr3 + scr4 + scr5 ) / 4. );
}
else if ( low == scr3 )
{
average = (( scr1 + scr2 + scr4 + scr5 ) / 4. );
}
else if ( low == scr4 )
{
average = (( scr1 + scr2 + scr3 + scr5 ) / 4. );
}
else
{
average = (( scr1 + scr2 + scr3 + scr4 ) / 4. );
}
cout << "The Average of the scores is: " << average << endl;
}
int findLowest( int scr1, int scr2, int scr3, int scr4, int scr5 )
{
if ( scr1 <= scr2 && scr1 <= scr3 && scr1 <= scr4 && scr1 <= scr5 )
{
return scr1;
}
else if ( scr2 <= scr1 && scr2 <= scr3 && scr2 <= scr4 && scr2 <= scr5 )
{
return scr2;
}
else if ( scr3 <= scr1 && scr1 <= scr2 && scr3 <= scr4 && scr3 <= scr5 )
{
return scr3;
}
else if ( scr4 <= scr1 && scr4 <= scr2 && scr4 <= scr3 && scr4 <= scr5 )
{
return scr4;
}
else
{
return scr5;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.