Ich habe einige Probleme mit meinem aufsteigenden Funktionsalgorithmus. Die Funktion Erreicht das größte Element der Funktion und setzt es an jeder Stelle. Zum Beispiel geben Sie Eingaben in der folgenden Reihenfolge ein: 88, 72, 81. Dann erhalten Sie 88,88,88 statt 72, 81, 88;Array aufsteigender Algorithmus C++
Code:
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);
}
}
Ich bin nicht sicher, was ich mit der Logik bin mit Blick auf so wollte ich sehen, wenn jemand anderes eine andere Perspektive hat.
Vermissen Sie ein '' else' oder CONTINUE nach dem 'if' blockieren? –
Um ein Array zu sortieren können Sie die [std :: sort] verwenden (http://en.cppreference.com/w/cpp/algorithm/sort) Funktion, die harte Arbeit zu tun, und Sie können anstarrt Angeln oder Stern gehen. –
@ Raw N Ich könnte absolut, aber ich versuche, den Algorithmus für mein eigenes Wissen zu verstehen. –