编辑代码

// NOTE 1. 答案: https://blog.csdn.net/u013779722/article/details/78418294
// http://cpp.jsrun.net/
#include <cctype>
#include <iostream>  // NOTE 输入输出
#include <string>
#include <vector>

using namespace std;

void HarmonicAverage();  // 调和平均数
void GolfGrade();

void HarmonicAverage() {
  double x, y;
  double average = 0;

  cout << "Enter two numbers: ";
  cin >> x >> y;
  while (x != 0 && y != 0) {
    average = 2.0 * x * y / (x + y);
    cout << "The average of " << x << " and " << y << " is " << average << endl;

    cout << "Enter the next two numbers: ";
    cin >> x >> y;
  }
}

void GetInput(vector<double>& grade, unsigned int* number) {
  cout << "You can enter up to 10 grades(-1 to quit): " << endl;
  while (cin >> grade[(*number)++]) {
    if (grade[*number - 1] == -1) break;
  }
  (*number)++;
}

void PrintArray(vector<double>& grade, const unsigned int number) {
  cout << "The grade is: " << endl;

  for (unsigned int i = 0; i < number; i++) {
    cout << grade[i] << " ";
  }
  cout << endl;
}

void CalAvg(vector<double>& grade, const unsigned int number) {
  double sum = 0.0;
  cout << "The average is : ";
  for (unsigned int i = 0; i < number - 2; i++) {
    sum += grade[i];
  }
  cout << sum / (number - 2) << endl;
}

void GolfGrade() {
  vector<double> grade(10);
  unsigned int enter = 0;

  GetInput(grade, &enter);
  PrintArray(grade, enter);
  CalAvg(grade, enter);
}

int main() { GolfGrade(); }