gpt4 book ai didi

c - 中断并继续 (C)

转载 作者:行者123 更新时间:2023-11-30 21:39:35 25 4
gpt4 key购买 nike

"Simon Says" is a memory game where "Simon" outputs a sequence of 10 characters (R, G, B, Y) and the user must repeat the sequence. Create a for loop that compares the two strings starting from index 0. For each match, add one point to userScore. Upon a mismatch, exit the loop using a break statement.

Ex: The following patterns yield a userScore of 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;
}

我尝试运行代码,但得到了这个

http://i.imgur.com/T7srTbb.png

有人知道是什么导致了额外的1吗?

谢谢。

最佳答案

更改 while 循环中的条件以使用 == 而不是 =。现在您正在进行分配,而不是比较这两个字符,这意味着第一个字符将始终相同并给出 1 分。然后您可以从循环内部删除 if 语句。

作业要求您使用 for 循环而不是 while。如果您只是将 I 移入 for 循环并填写其余部分,同时将增量移至 != 检查之后,它将起作用。

关于c - 中断并继续 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com