「Simon Says」是一個記憶遊戲,其中「Simon」輸出一個由10個字符組成的序列(R,G,B,Y),用戶必須重複該序列。創建一個for循環,比較從索引0開始的兩個字符串。對於每個匹配,向userScore添加一個點。如果不匹配,請使用break語句退出循環。Break and Continue(C)
實施例:下面的圖案得到的4 userScore:
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;
}
我試圖運行的代碼,而是我得到這個
http://i.imgur.com/T7srTbb.png
有誰知道是什麼原因導致額外的1?
謝謝。
'while(userPattern [i] = simonPattern [i]){'用'=='替換'='。 'if(userPattern [i]!= simonPattern [i]){'不是必需的 – fukanchik
您是否試過用調試器單步執行代碼或添加一些'printf'語句來查看主循環中發生了什麼? – GWW
[提問作業幫助的問題必須包括您迄今爲止解決問題所做的工作摘要,以及您解決問題的難點描述。](http://stackoverflow.com/help/on -topic) – David