Ich bin vertraut mit den Grundlagen von C: -scanf ("% d", int) gut gestern, nicht heute. Was ist los?
Es gibt zwei Iterationen von scanf() in diesem Programm. Das erste ist voll funktionsfähig. Die zweite Darstellung tut nichts und beendet stattdessen das Programm und kehrt zur Standard-Befehlszeile zurück.
Auch für Schleife meine zweite druckt nur die ersten vier Zahlen anstelle von 5.
Hier ist der Code:
int main() {
int i;
int iNum[4]
int iMenu = 0;
printf("\n\n\tPlease enter five numbers: ");
for (i = 0; i < 4; i++) {
scanf("%d ", &iNum[i]);
}
printf("\n\tThank you. Here are your numbers: \n\t");
for (i = 0; i < 4; i++) {
printf("%d", iNum[i]);
}
printf("\n\tMenu:");
printf("\n1\tSort your numbers ascending.");
printf("\n2\tSort your numbers descending.");
printf("\n3\tQuit program");
printf("\n\nWhat would you like to do?\n\tEnter your option here: ");
scanf(" %d", &iMenu);
switch (iMenu) {
case 1:
printf("\nCase1testPrint");
sortAsc();
break;
case 2:
printf("\nCase2testPrint");
sortDesc();
break;
. . .//rest of code }
Sobald das Programm die zweite Scanf erreicht(), um das Programm endet und kehrt zur Eingabeaufforderung zurück.
Das ist verwirrend, und ich habe viele Variationen versucht, was falsch sein könnte. Bitte geben Sie an, was Sie können.
Hier ist, wie es aussieht, wenn ich das Programm ausführen. Beachten Sie meinen Eintrag „1“ erscheint in der Befehlszeile anstelle des Programms:
C:\Users\Cortland\Documents\C projects>gcc arraysort.c
C:\Users\Cortland\Documents\C projects>a
Please enter five numbers: 3
6
5
4
5
Thank you. Here are your numbers:
3 6 5 4
Menu:
1 Sort your numbers ascending.
2 Sort your numbers descending.
3 Quit program
What would you like to do?
Enter your option here:
C:\Users\Cortland\Documents\C projects>1
Ihr Text fordert die Person auf, fünf Zahlen einzugeben, aber Ihr Array hat nur Platz für 4 und Ihr Code erhält nur 4 Zahlen. Aber Ihre Ausgabe scheint zu zeigen, dass sie nach fünf Zahlen fragt. Etwas stimmt hier nicht überein. –
'für (i = 0; i <4; i ++) {' iteriert über 0, 1, 2, 3. warum nicht 4? weil '<' nicht beinhaltet '=' – fukanchik
Das ist nicht dein richtiger Code. Auf der Deklaration von "iNum" fehlt ein Semikolon. (Sie vermissen auch #include ', aber ein laxer Compiler könnte Sie ohne es kompilieren lassen.) Wenn Sie nicht den tatsächlichen Code kopieren und einfügen, der das Problem aufweist, können wir nicht zwischen Fehlern in Ihrem tatsächlichen Code unterscheiden und Fehler, die Sie beim Zusammenfassen eingeführt haben. –