Ich brauche ein Programm, das ein Array von Ganzzahlen sortiert, ohne bedingte Anweisungen zu verwenden. Zahlen liegen im Bereich von 0 bis 100 und wiederholen sich nicht.Array ohne Bedingung sortieren
#include <iostream>
using namespace std;
int main() {
int arr[] = { 34, 12, 24, 65, 63, 22 };
int arraySize = (sizeof(arr)/sizeof(*arr));
unsigned char buf[101] = { 0 };
for (int k = 0; k < arraySize; k++) {
buf[arr[k]]++;
}
unsigned char i = 0;
for (int k = 0; k <= 100; k++) {
arr[i] = k;
i += buf[k];
}
for (int a : arr) {
cout << a << endl;
}
system("pause");
return 0;
}
Dieses Programm funktioniert, aber ich bekomme die Fehlermeldung nach Aufforderung des Befehls endet:
Run-Time Check Failure # 2 - Stapeln Sie rund um die Variable 'arr' beschädigt wurde.
Gibt es eine Möglichkeit, es zu beheben?
welchen Compiler verwenden Sie? – Tejendra
"funktioniert" kann ein bisschen stark sein. –
Sie schreiben irgendwo außerhalb der Grenzen. Verwenden Sie einen Debugger und durchlaufen Sie den Code Zeile für Zeile, während Sie die Variablen und ihre Werte im Auge behalten. –