For my class I am supposed to create a program that asks for 5 test scores and to average the 4 highest scores using functions. I wrote this program with some help and I am a little confused. How does void calcAverage know to input score1-score5 in the parameters into test1-test5? Does it know based on the information I put into int findLowest? Thanks!
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
void getscore(int &testcore);
void calcAverage (double, double, double, double, double);
int findLowest (double, double, double, double, double);
int main()
{
int score1, score2, score3, score4, score5;
cout << fixed << setprecision(2);
getscore(score1);
getscore(score2);
getscore(score3);
getscore(score4);
getscore(score5);
calcAverage(score1, score2, score3, score4, score5);
return 0;
}
void getscore(int &testscore){
cout << "Enter test score:" << endl;
cin >> testscore;
while(testscore<1||testscore > 100){
cout << "Invalid. Enter a number between 1-100" << endl;
cin >> testscore;
}
}
void calcAverage(double test1, double test2, double test3, double test4, double test5){
double scores_added, average;
scores_added = test1 + test2 + test3 + test4 + test5;
average = (scores_added-findLowest(test1, test2, test3, test4, test5))/4.0;
cout << "The average of the 4 highest scores is " << average << endl;
}
int findLowest(double score1, double score2, double score3, double score4, double score5){
if(score1<score2 && score1<score3 && score1<score4 && score1<score5){
return score1;
}else if(score2<score1 && score2<score3 && score2<score4 && score2<score5){
return score2;
}else if(score3<score1 && score3<score2 && score3<score4 && score2<score5){
return score3;
}else if(score4<score1 && score4<score2 && score4<score3 && score4<score5){
return score4;
}else if(score5<score1 && score5<score2 && score5<score3 && score5<score4){
return score5;
}
}