Loop wont quit

I have to write a program that calculates contestants final score by dropping the highest and lowest score received and averaging the three remaining scores. Instructions are, when a user enters "Done" the calculations should begin. No matter if I type "Done" or 'done" I am still asked for the next contestants information. I would like the user to be able to enter done in upper or lower case and the calculations begin.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

// Function prototypes

double validScore(int);   // Validates judges' score entries.
double findHighest(double,double,double,double,double); // Find highest score of each competitor
double findLowest(double,double,double,double,double); // Find lowest score of each competitor

int main()
{
bool isValid;
double score1, score2, score3, score4, score5;
int highest, lowest;

double score, winnerScore;
string name, winnerName;


cout << "Welcome to Sinclair's Got Talent!\n";

// Retrieve names, terminate loop when no more names
do
{
	cout << "\nEnter the name of the star, enter Done when there are no more stars: ";
	cin >> name;
	cout << endl;

    if(name != "Done")
    {
	cout << "Enter judge 1 score: ";
	cin >> score;
	score1 = validScore(score);


	cout << "Enter judge 2 score: ";
	cin >> score;
	score2 = validScore(score);

	cout << "Enter judge 3 score: ";
	cin >> score;
	score3 = validScore(score);

	cout << "Enter judge 4 score: ";
	cin >> score;
	score4 = validScore(score);

	cout << "Enter judge 5 score: ";
	cin >> score;
	score5 = validScore(score);

     }
} while (name != "Done");

{
// Get 5 judges scores for each name

cout << "Enter judge 1 score: " ;
cin >> score;
score1 = validScore(score);


cout << "Enter judge 2 score: " ;
cin >> score;
score2 = validScore(score);

cout << "Enter judge 3 score: " ;
cin >> score;
score3 = validScore(score);

cout << "Enter judge 4 score: " ;
cin >> score;
score4 = validScore(score);

cout << "Enter judge 5 score: " ;
cin >> score;
score5 = validScore(score);

}
// Call average score calculation function






// Display name and score of winner.
cout << "The winner of the competition is " << winnerName << endl;
cout << "with a score of " << winnerScore << "!" << endl;



system("pause");
return 0;
}

// **********************************************************************
// *  Definition of function inputValidation. Checks judge score input  *
// *  to verify it is in between 1 and 10 and displays an error message *
// *  if it is not.                                                     *
// **********************************************************************

double validScore(int score)
{
	while (score<1 || score>10)
{
	cout << "Please enter a valid score between 1 and 10: " ;
	cin >> score;
}
return score;
}

	

int findHighest(int score1, int score2, int score3, int score4, int score5)
{
	int highest=1;
if (score1>highest)
	highest=score1;
else if (score2>highest)
	highest=score2;
else if (score3>highest)
	highest=score3;
else if (score4>highest)
	highest=score4;
else if (score5>highest)
	highest=score5;

return highest;
}

int findLowest(int score1, int score2, int score3, int score4, int score5)
{ 
	int lowest=10;
if (score1<lowest)
	lowest=score1;
else if (score2<lowest)
	lowest=score2;
else if (score3<lowest)
	lowest=score3;
else if (score4<lowest)
	lowest=score4;
else if (score5<lowest)
	lowest=score5;

return lowest;
}


Last edited on
Below your do while loop you have:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

{
// Get 5 judges scores for each name

cout << "Enter judge 1 score: " ;
cin >> score;
score1 = validScore(score);


cout << "Enter judge 2 score: " ;
cin >> score;
score2 = validScore(score);

cout << "Enter judge 3 score: " ;
cin >> score;
score3 = validScore(score);

cout << "Enter judge 4 score: " ;
cin >> score;
score4 = validScore(score);

cout << "Enter judge 5 score: " ;
cin >> score;
score5 = validScore(score);

}
// Call average score calculation function


This block of code will be executed regardless if the user types "Done" or not, since its outside of your do while loop. If you remove this, then when the User types "Done" it will skip the loop.
Last edited on
Topic archived. No new replies allowed.