The code up until the end of the do-while loop makes sense to me. You accept up to 75 scores, where the user can enter any negative number to stop entry.
Now you make a little mistake with your sum. Addition between a double (sum) and an array of doubles (scores) is not defined explicitly. You need to add each number to sum individually. That is, scores[0], scores[1], all the way to scores[counter-1].
Then your cout calls at the end. You seem to want to display the average, but instead you ask the user to give a value for the average. It looks like a slip of the mind. You want this:
Code:
cout << "Average is " << average << endl;
Which is the same as if you did
Code:
cout << "Average is ";
cout << average << endl;
The endl tells the stream to go to a new line and actually print out what you wrote right away.
You also seem to make no effort to find what the highest and lowest are. How would you know? What makes a number the biggest or the smallest? What would your program have to do? I'll do the highest.
Code:
//make sure highest starts at 0; the lowest allowable value.
double score, average, highest = 0, lowest;
int counter = -1;
do
{
counter++;
cout << "Please enter a score (enter -1 to stop): ";
cin >> score[counter];
if(score[counter] > highest)
highest = score[counter];
//The lowest will be a tiny bit trickier.
} while (scores[counter] >= 0);