Break und Continue (C)
"Simon Says" ist ein memory-Spiel, wo "Simon" gibt eine Folge von 10 Zeichen (R, G, B, Y), und die Benutzer müssen die Sequenz wiederholen. Erstellen Sie eine for-Schleife vergleicht die beiden strings beginnend vom index 0. Für jedes Spiel, fügen Sie einen Punkt, um userScore. Auf eine Diskrepanz, beenden Sie die Schleife mit einer break-Anweisung.
Ex: Die folgenden Muster ergeben einen userScore von 4:
simonPattern: R, R, G, B, R, Y, Y, B, G, Y
userPattern: R, R, G, B, B, R, Y, B, G, Y
#include <stdio.h>
#include <string.h>
int main(void) {
char simonPattern[50] = "";
char userPattern[50] = "";
int userScore = 0;
int i = 0;
userScore = 0;
strcpy(simonPattern, "RRGBRYYBGY");
strcpy(userPattern, "RRGBBRYBGY");
while (userPattern[i] = simonPattern[i]) {
userScore = userScore + 1;
++i;
if (userPattern[i] != simonPattern[i]) {
break;
}
}
printf("userScore: %d\n", userScore);
return 0;
}
Ich habe versucht mit dem code, aber ich habe diese
http://i.imgur.com/T7srTbb.png
Weiß jemand, was die zusätzlichen 1?
Dank.
while (userPattern[i] = simonPattern[i]) {
ersetzen=
mit==
. ` wenn (userPattern[i] != simonPattern[i]) {"ist nicht notwendig- Haben Sie versucht, schrittweise durch den code mit einem debugger oder das hinzufügen von
printf
Anweisungen, um zu sehen, was passiert in der main-loop? - Fragen Fragen bei den Hausaufgaben helfen muss eine Zusammenfassung der Arbeit, die Sie ' ve bisher getan, um das problem zu lösen, und eine Beschreibung der Schwierigkeiten, die Sie haben, es zu lösen.
- Wo haben Sie die Ausgabe in das Bild kommen?
- Bitte zeigen Sie alle benötigten Informationen hier. Nicht nur das hinzufügen externer links und keine Bilder/screenshots.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die Bedingung in deiner while-Schleife zu verwenden
==
nicht=
. Recht jetzt machen Sie eine Zuweisung und kein Vergleich der beiden dh die ersten chars immer die gleichen und geben einem score von 1. Sie können dann entfernen Sie die if-Anweisung aus der Schleife.Die Zuordnung fordert Sie auf, eine for-Schleife verwenden und nicht eine Weile. Wenn Sie gerade bewegen, die ich in die for-Schleife und füllen Sie den rest, zusammen mit dem verschieben der Zuwachs nach der != schauen Sie, es würde funktionieren.
Werden Sie sicher, dass die Verwendung einer "FOR" - Schleife, sehe ich, dass Sie eine "WHILE" - Schleife. Möchten Sie den = = - Vergleichsoperator, im Gegensatz zu den Zuweisungsoperator=.
Hier mein code und es hat Super geklappt: