Ich habe eine Reihe von Zahlen, die ich versuche umzukehren. Ich glaube, dass die Funktion in meinem Code korrekt ist, aber ich kann nicht die richtige Ausgabe erhalten.Umgekehrter Inhalt in Array
Der Ausgang lautet: 10 9 8 7 6. Warum kann ich nicht die andere Hälfte der Zahlen bekommen? Als ich die "/ 2" von Zählung zu entfernen, liest die Ausgabe: 10 9 8 7 6 6 7 8 9 10
void reverse(int [], int);
int main()
{
const int SIZE = 10;
int arr [SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
reverse(arr, SIZE);
return 0;
}
void reverse(int arr[], int count)
{
int temp;
for (int i = 0; i < count/2; ++i)
{
arr[i] = temp;
temp = arr[count-i-1];
arr[count-i-1] = arr[i];
arr[i] = temp;
cout << temp << " ";
}
}
Ihre Schleife läuft nur für die Hälfte der Länge des Arrays, wenn Sie die Zählung durch 2 teilen, so dass es nur die Hälfte der Array-Inhalt auf dem Bildschirm ausgibt. – Josh
Schauen Sie sich Ihren swapping mit temps;) – jbh
Mit 'std :: swap()' wäre idiotensicher - weshalb es existiert;) – marko