Ich versuche, das Programm die Zahlen 1,2,3,4 in umgekehrter Reihenfolge ausgeben zu lassen. Allerdings bekomme ich immer seltsame Ergebnisse und bin mir nicht sicher warum. Das ist, was ich habe, so weit:Ausgabeelemente von einem Array in umgekehrter Reihenfolge
#include <stdio.h>
#define NO_OF_ELEMENTS 4
int main()
{
int numbers[NO_OF_ELEMENTS];
int i, j;
printf("Type a number and hit enter:\n");
/* Input each number */
for(i = 0; i < NO_OF_ELEMENTS; i++)
{
scanf("%d", &numbers[i]);
}
/* Print each number in reverse order */
for(j = NO_OF_ELEMENTS; j > 0; j--)
{
printf("%d\n", &numbers[j]);
}
return(0);
}
Die Ausgabe des Programms sieht wie folgt aus:
Jede Hilfe bei der Erklärung, warum der Code nicht funktioniert, wie ich es erwarten, wird sehr geschätzt werden.
FIXED
/* Print each number in reverse order */
for(j = NO_OF_ELEMENTS; j > 0; j--)
{
printf("%d\n", numbers[j - 1]);
}
Es ist nur 'Zahlen [j]' in 'printf'; nein '&'. Und dein Index ist um eins, also 'Zahlen [j - 1]'. – melpomene
@melpomene Ich denke, es ist das 'scanf' in der for-Schleife. Eine Antwort wird in diesem Link bereitgestellt. Ist das falsch? Ihre Antwort ist korrekt. – Elyasin
@Elyasin Die Frage, die Sie verlinkt haben, ist über 'scanf', der scheinbar die Eingabe überspringt. Dies ist hier nicht der Fall: OP konnte 4 Zahlen wie erwartet eingeben. – melpomene