//Vanessa Ramirez CSC5 Chapter 6, P. 371, #10
//
/******************************************************************************
// LOWEST SCORE DROP
________________________________________________________________________________
This program calculates the average of five test scores after dropping the
lowest score.
________________________________________________________________________________
INPUT
score1 - First test score
score2 - Second test score
score3 - Third test score
score4 - Fourth test score
score5 - Fifth test score
OUTPUT
average - Average of the four highest scores
*******************************************************************************/
#include <iostream>
using namespace std;
// Function protoype
void getScore(int &score);
void calcAverage (int score1, int score2, int score3,
int score4, int score5);
int findLowest(int score1, int score2, int score3,
int score4, int score5);
int main()
{
// Declare variables
int score1;
int score2;
int score3;
int score4;
int score5;
//Get the five test scores
cout << "Enter test score 1: " << endl;
getScore(score1);
cout << "Enter test score 2: " << endl;
getScore(score2);
cout << "Enter test score 3: " << endl;
getScore(score3);
cout << "Enter test score 4: " << endl;
getScore(score4);
cout << "Enter test score 5: " << endl;
getScore(score5);
// Calculate and dispay the average
calcAverage(score1, score2, score3, score4, score5);
return 0;
}
//getScore
// Drops the lowest score and displays the average of the four highest test
//scores.
void getScore(int &score)
{
cin >> score;
while (score < 0 || score > 100)
{
cout << "Invalid score. Enter a scope from 0 to 100: ";
cin >> score;
}
}
void calcAverage(int score1, int score2, int score3, int score4, int score5)
{
int lowest;
int total;
double average;
//Find the lowest score
lowest = findLowest(score1, score2, score3, score4, score5);
// Add the five scores
total = score1 + score2 + score3 + score4 + score5;
//Drop the lowest score and calculate the average
average = (total - lowest) / 4.0;
// Display the average
cout << endl << "Average of the four highest scores: " << average << endl;
}
int findLowest(int score1, int score2, int score3, int score4, int score5)
{
int lowest;
lowest = score1;
if (score2 < lowest)
{
lowest = score2;
}
if (score3 < lowest)
{
lowest = score3;
}
if (score4 < lowest)
{
score4 = lowest;
}
if (score5 < lowest)
{
score5 = lowest;
}
return lowest;
}
Ly9WYW5lc3NhIFJhbWlyZXoJCQkJCUNTQzUJCQkJICBDaGFwdGVyIDYsIFAuIDM3MSwgIzEwCi8vCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gTE9XRVNUIFNDT1JFIERST1AKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVGhpcyBwcm9ncmFtIGNhbGN1bGF0ZXMgdGhlIGF2ZXJhZ2Ugb2YgZml2ZSB0ZXN0IHNjb3JlcyBhZnRlciBkcm9wcGluZyB0aGUgCmxvd2VzdCBzY29yZS4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklOUFVUCglzY29yZTEJCS0gRmlyc3QgdGVzdCBzY29yZQoJc2NvcmUyCQktIFNlY29uZCB0ZXN0IHNjb3JlCglzY29yZTMJCS0gVGhpcmQgdGVzdCBzY29yZQoJc2NvcmU0CQktIEZvdXJ0aCB0ZXN0IHNjb3JlCglzY29yZTUJCS0gRmlmdGggdGVzdCBzY29yZQoJCk9VVFBVVAoJYXZlcmFnZQkJLSBBdmVyYWdlIG9mIHRoZSBmb3VyIGhpZ2hlc3Qgc2NvcmVzCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmN0aW9uIHByb3RveXBlCnZvaWQgZ2V0U2NvcmUoaW50ICZzY29yZSk7CnZvaWQgY2FsY0F2ZXJhZ2UgKGludCBzY29yZTEsIGludCBzY29yZTIsIGludCBzY29yZTMsIAoJCQkJIGludCBzY29yZTQsIGludCBzY29yZTUpOwppbnQgZmluZExvd2VzdChpbnQgc2NvcmUxLCBpbnQgc2NvcmUyLCBpbnQgc2NvcmUzLAoJCQkJaW50IHNjb3JlNCwgaW50IHNjb3JlNSk7CgkJCQkKCQkJCSAKaW50IG1haW4oKSAKewoJLy8gRGVjbGFyZSB2YXJpYWJsZXMKCWludCBzY29yZTE7CglpbnQgc2NvcmUyOwoJaW50IHNjb3JlMzsKCWludCBzY29yZTQ7CglpbnQgc2NvcmU1OwoJCgkvL0dldCB0aGUgZml2ZSB0ZXN0IHNjb3JlcwoJY291dCA8PCAiRW50ZXIgdGVzdCBzY29yZSAxOiAiIDw8IGVuZGw7CglnZXRTY29yZShzY29yZTEpOwoJCgljb3V0IDw8ICJFbnRlciB0ZXN0IHNjb3JlIDI6ICIgPDwgZW5kbDsKCWdldFNjb3JlKHNjb3JlMik7CgkKCWNvdXQgPDwgIkVudGVyIHRlc3Qgc2NvcmUgMzogIiA8PCBlbmRsOwoJZ2V0U2NvcmUoc2NvcmUzKTsKCQoJY291dCA8PCAiRW50ZXIgdGVzdCBzY29yZSA0OiAiIDw8IGVuZGw7CglnZXRTY29yZShzY29yZTQpOwoJCgljb3V0IDw8ICJFbnRlciB0ZXN0IHNjb3JlIDU6ICIgPDwgZW5kbDsKCWdldFNjb3JlKHNjb3JlNSk7CgkKCS8vIENhbGN1bGF0ZSBhbmQgZGlzcGF5IHRoZSBhdmVyYWdlIAoJY2FsY0F2ZXJhZ2Uoc2NvcmUxLCBzY29yZTIsIHNjb3JlMywgc2NvcmU0LCBzY29yZTUpOwoJCglyZXR1cm4gMDsKfQovL2dldFNjb3JlCi8vIERyb3BzIHRoZSBsb3dlc3Qgc2NvcmUgYW5kIGRpc3BsYXlzIHRoZSBhdmVyYWdlIG9mIHRoZSBmb3VyIGhpZ2hlc3QgdGVzdCAKLy9zY29yZXMuCnZvaWQgZ2V0U2NvcmUoaW50ICZzY29yZSkKewoJY2luID4+IHNjb3JlOwoJCgl3aGlsZSAoc2NvcmUgPCAwIHx8IHNjb3JlID4gMTAwKQoJewoJCWNvdXQgPDwgIkludmFsaWQgc2NvcmUuIEVudGVyIGEgc2NvcGUgZnJvbSAwIHRvIDEwMDogIjsKCQljaW4gPj4gc2NvcmU7Cgl9Cn0KCnZvaWQgY2FsY0F2ZXJhZ2UoaW50IHNjb3JlMSwgaW50IHNjb3JlMiwgaW50IHNjb3JlMywgaW50IHNjb3JlNCwgaW50IHNjb3JlNSkKewoJaW50IGxvd2VzdDsKCWludCB0b3RhbDsKCWRvdWJsZSBhdmVyYWdlOwoJCgkvL0ZpbmQgdGhlIGxvd2VzdCBzY29yZQoJbG93ZXN0ID0gZmluZExvd2VzdChzY29yZTEsIHNjb3JlMiwgc2NvcmUzLCBzY29yZTQsIHNjb3JlNSk7CgkKCS8vIEFkZCB0aGUgZml2ZSBzY29yZXMKCXRvdGFsID0gc2NvcmUxICsgc2NvcmUyICsgc2NvcmUzICsgc2NvcmU0ICsgc2NvcmU1OwoJCgkvL0Ryb3AgdGhlIGxvd2VzdCBzY29yZSBhbmQgY2FsY3VsYXRlIHRoZSBhdmVyYWdlCglhdmVyYWdlID0gKHRvdGFsIC0gbG93ZXN0KSAvIDQuMDsKCQoJLy8gRGlzcGxheSB0aGUgYXZlcmFnZQoJY291dCA8PCBlbmRsIDw8ICJBdmVyYWdlIG9mIHRoZSBmb3VyIGhpZ2hlc3Qgc2NvcmVzOiAiIDw8IGF2ZXJhZ2UgPDwgZW5kbDsKfQoKaW50IGZpbmRMb3dlc3QoaW50IHNjb3JlMSwgaW50IHNjb3JlMiwgaW50IHNjb3JlMywgaW50IHNjb3JlNCwgaW50IHNjb3JlNSkKewoJaW50IGxvd2VzdDsgCgkKCWxvd2VzdCA9IHNjb3JlMTsKCQoJaWYgKHNjb3JlMiA8IGxvd2VzdCkKCXsKCQlsb3dlc3QgPSBzY29yZTI7Cgl9CglpZiAoc2NvcmUzIDwgbG93ZXN0KQoJewoJCWxvd2VzdCA9IHNjb3JlMzsKCX0KCWlmIChzY29yZTQgPCBsb3dlc3QpCgl7CgkJc2NvcmU0ID0gbG93ZXN0OwoJfQoJaWYgKHNjb3JlNSA8IGxvd2VzdCkKCXsKCQlzY29yZTUgPSBsb3dlc3Q7Cgl9CglyZXR1cm4gbG93ZXN0Owp9