私の昇順関数アルゴリズムに問題があります。この関数は、関数の最大要素に達した後、すべての場所に設定します。たとえば、88,72,81の順序で入力を入力します。 次に、72,81,88の代わりに88,88,88を取得します。配列昇順アルゴリズムC++
コード:
void orderGrades(Student grades[], int studentNumber){
int startScan, minIndex, minValue;
for(startScan = 0; startScan < (studentNumber - 1); startScan++){
minIndex = startScan;
minValue = grades[startScan].getGrade();
for(int index = startScan + 1; index < studentNumber; index++)
{
if(grades[index].getGrade() < minValue)
{
grades[index].setGrade(minValue);
minIndex = index;
}
}
grades[minIndex].setGrade(grades[startScan].getGrade());
grades[startScan].setGrade(minValue);
}
}
私はロジックを見下ろす午前何かわからないので、私は他の誰かが別の視点を持っているかどうかを確認したかったです。
'if'ブロックの後ろに' else'または 'continue'がありませんか? –
配列をソートするには、[std :: sort](http://en.cppreference.com/w/cpp/algorithm/sort)関数を使用して作業を行い、釣りや星の眺めをすることができます。 –
@ Raw Nしかし、私は自分の知識のアルゴリズムを理解しようとしています。 –