1

メイン関数にある整数のベクトルを計算する 2 番目の関数を作成しようとしています。私のベクトルはこのように設定されています。

int inputinfo;
cout << "\nPlease enter in scores: ";
cout << "\nEnd your input with ctrl-z\n";
vector<int> scores;
    while (cin >> inputinfo)
    {
        scores.push_back(inputinfo);
    }

これが私の中央値です(正しく機能しているかどうかはわかりません)。中央値の関数を作成し、それをメイン関数に呼び出して、ベクトルの中央値を見つけたいと思います。

  double median;
  size_t size = scores.size();

  sort(scores.begin(), scores.end());

  if (size  % TWO == 0)
  {
      median = (scores[size / 2 - 1] + scores[size / 2]) / 2;
  }
  else 
  {
      median = scores[size / 2];
  }

助けてくれてありがとう。

4

2 に答える 2

2

ベクトル内に数値がない場合、または数値が 1 つしかない場合に、コードが失敗するかどうかを確認してください。これを使用して修正できます

if (size==0) throw "Vector empty";
if (size==1) return scores[0];

if (size % TWO == 0) 行の前。

于 2013-01-20T22:03:36.510 に答える