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, scores, 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:
Which is the same as if you did
cout << "Average is " << average << endl;
The endl tells the stream to go to a new line and actually print out what you wrote right away.
cout << "Average is ";
cout << average << endl;
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.
//make sure highest starts at 0; the lowest allowable value.
double score, average, highest = 0, lowest;
int counter = -1;
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);