Assistance with debugging C++ Program
Tested following modified code in http://www.compileonline.com/compile_cpp_online.php
#include
#include
#include
using namespace std;
/* This program computes the score for a dive based on the degree of difficulty
* and five judges scores. The high and low scores are dropped.
*/
/* Function prototypes */
void inputScores(double scores[]);
double addAllScores(double scores[]);
double findLowScore(double scores[]);
double findHighScore(double scores[]);
int main ()
{
double difficulty, sum, lowScore, highScore, score;
double judgeScores[5];
cout << "Please enter the degree of difficulty: ";
cin >> difficulty;
inputScores(judgeScores);
sum = addAllScores(judgeScores);
lowScore = findLowScore(judgeScores);
highScore = findHighScore(judgeScores);
/* subtract out the low and high scores */
sum = sum - lowScore - highScore;
/* multiply by degree of difficulty */
score = sum * difficulty;
cout << "The score for the dive is: " << fixed << setprecision(2) << score << endl;
//system("pause");
}
//****************************************************************
// This function gets the judges scores
//***************************************************************
void inputScores(double scores[])
{
for(int i = 1; i < 5; i++)
{
scores[i] = i;
//cout << "Please enter the score from Judge #" << i + 1 << ": ";
//cin >> scores[i];
}
}
//****************************************************************
//This function determines the sum of the scores input.
//****************************************************************
double addAllScores(double scores[])
{
double total;
//determine lowest score
for (int count = 0; count < 5; count++)
{
total += scores[count];
}
return total;
}
//****************************************************************
//This function determines the lowest score input.
//****************************************************************
double findLowScore(double scores[])
{
double lowest = 99999.0;
//determine lowest score
for (int count = 0; count <= 5; count++)
{
if (lowest > scores[count])
lowest = scores[count];
}
return lowest;
}
//****************************************************************
//This function determines the highest score input.
//****************************************************************
double findHighScore(double scores[])
{
double highest = -1;
//determine lowest score.
for (int count = 0; count < 5; count++)
{
if (highest < scores[count])
highest = scores[count];
}
return highest;
}
Inputs and rest of the debug
Difficulty = 6
Scores[0] = 0
scores[1] = 1
.
.
scores[4] = 4
highest = 4,
lowest = 0,
total = 1+2+3+4 = 10
sum = total - highest - lowest = 10 - 4 - 0 = 6
score =sum * difficult = 6 * 6 = 36
not sure about the error, I don't think it is related to your code, may be you have configured VS wrong.
Change inputScores to,
void inputScores(double scores[])
{
for(int i = 0; i < 5; i++)
{
cout << "Please enter the score from Judge #" << i + 1 << ": ";
cin >> scores[i];
}
}
for inputs.
change
count<=5 to count<5 in determine lowest score
Will you code work if all the values are above 99999.0 or all the values are less than -1?
If you want them to work with all the values , assign first score to highest/lowest :)
How did you get it to equal 42.55. I am working on this same program trying to debug it and can't get it to equal 42.55.
wondering why you using
for(int i = 1; i < 5; i++) and
for(int i = 0; i < 5; i++) and
for(int i = 0; i <= 5; i++) ....they all should same ideally 0 to < 5 if size is 5
instead of hard code 5, just use scores.size(),,,,,,done
Here is my program. It should equal 42.55. It's not dropping the lowest score.
#include
#include
#include
using namespace std;
/* This program computes the score for a dive based on the degree of difficulty
* and five judges scores. The high and low scores are dropped.
*/
/* Function prototypes */
void inputScores(double scores[]);
double addAllScores(double scores[]);
double findLowScore(double scores[]);
double findHighScore(double scores[]);
int main()
{
double difficulty, sum, lowScore, highScore, score;
double judgeScores[5];
cout << "Please enter the degree of difficulty: ";
cin >> difficulty;
inputScores(judgeScores);
sum = addAllScores(judgeScores);
lowScore = findLowScore(judgeScores);
highScore = findHighScore(judgeScores);
/* subtract out the low and high scores */
sum = sum - lowScore - highScore;
/* multiply by degree of difficulty */
score = sum * difficulty;
cout << "The score for the dive is: " << fixed << setprecision(2) << score << endl;
system("pause");
}
//****************************************************************
// This function gets the judges scores
//***************************************************************
void inputScores(double scores[])
{
for (int i = 0; i < 5; i++)
{
cout << "Please enter the score from Judge #" << i + 1 << ": ";
cin >> scores[i];
}
}
//****************************************************************
//This function determines the sum of the scores input.
//****************************************************************
double addAllScores(double scores[])
{
double total = 0;
//determine sum of score
for (int count = 0; count < 5; count++)
{
total += scores[count];
}
return total;
}
//****************************************************************
//This function determines the lowest score input.
//****************************************************************
double findLowScore(double scores[])
{
double lowest = 0;
//determine lowest score
for (int count = 0; count < 5; count++)
{
if (lowest < scores[count])
lowest = scores[count];
}
return lowest;
}
//****************************************************************
//This function determines the highest score input.
//****************************************************************
double findHighScore(double scores[])
{
double highest = 0;
//determine highest score.
for (int count = 0; count < 5; count++)
{
if (highest > scores[count])
highest = scores[count];
}
return highest;
}
void inputScores(double scores[]) should return double[] values......array is not passed by reference ..so change function as:
double[] inputScores(double scores[])
{
for (int i = 0; i < 5; i++)
{
cout << "Please enter the score from Judge #" << i + 1 << ": ";
cin >> scores[i];
}
return scores;
}
and judgeScores = inputScores(judgeScores); .and call other methods....will work
Debbie did you ever get this to work
I think so. I changed this part:
double findHighScore(double scores[])
{
double highest = 0;
to:
double findHighScore(double scores[])
{
double highest = 99999.0;
Still unable to get it to work.. can you attach your whole program to compare to what I have
This is what I have, let me know if it worked for you.
#include
#include
#include
using namespace std;
/* This program computes the score for a dive based on the degree of difficulty
* and five judges scores. The high and low scores are dropped.
*/
/* Function prototypes */
void inputScores(double scores[]);
double addAllScores(double scores[]);
double findLowScore(double scores[]);
double findHighScore(double scores[]);
int main()
{
double difficulty, sum, lowScore, highScore, score;
double judgeScores[5];
cout << "Please enter the degree of difficulty: ";
cin >> difficulty;
inputScores(judgeScores);
sum = addAllScores(judgeScores);
lowScore = findLowScore(judgeScores);
highScore = findHighScore(judgeScores);
/* subtract out the low and high scores */
sum = sum - lowScore - highScore;
/* multiply by degree of difficulty */
score = sum * difficulty;
cout << "The score for the dive is: " << fixed << setprecision(2) << score << endl;
system("pause");
}
//****************************************************************
// This function gets the judges scores
//***************************************************************
void inputScores(double scores[])
{
for (int i = 0; i < 5; i++)
{
cout << "Please enter the score from Judge #" << i + 1 << ": ";
cin >> scores[i];
}
}
//****************************************************************
//This function determines the sum of the scores input.
//****************************************************************
double addAllScores(double scores[])
{
double total = 0;
//determine sum of score
for (int count = 0; count < 5; count++)
{
total += scores[count];
}
return total;
}
//****************************************************************
//This function determines the lowest score input.
//****************************************************************
double findLowScore(double scores[])
{
double lowest = 0;
//determine lowest score
for (int count = 0; count < 5; count++)
{
if (lowest < scores[count])
lowest = scores[count];
}
return lowest;
}
//****************************************************************
//This function determines the highest score input.
//****************************************************************
double findHighScore(double scores[])
{
double highest = 99999.0;
//determine highest score.
for (int count = 0; count < 5; count++)
{
if (highest > scores[count])
highest = scores[count];
}
return highest;
}
You are a lifesaver thank you so much..can we share emails in case I need some more help lol
I'm sending you a message with my email on Facebook. I found your page.
Please log in to reply to this post
You can also log in using your Facebook