使用一维数组和for循环的C语言字符猜谜游戏
Posted
技术标签:
【中文标题】使用一维数组和for循环的C语言字符猜谜游戏【英文标题】:Character guessing gaming in C language using 1D array and for loop 【发布时间】:2020-04-09 20:58:59 【问题描述】:如果迭代(“i==[index]”),我打算使用“继续语句”跳过特定字符。我想跳过索引 5 处的字符。 请在下面是代码。不过我是新手。
#include <stdio.h>
#include <stdlib.h>
int main()
char guess[10]="Programmer";
char choice;
printf("Welcome to my guessing game\n");
printf("===============================\n");
int i;
for(i=0;i<10;i++)
printf("%c", guess[i]);
if(i==guess[5])
continue;
printf("\n\n");
printf("Guess which letter is missing\n");
scanf(" %c",&choice);
if(choice==guess[5])
printf("Excellent! Good point");
else
printf("Ooops! Wrong answer\n");
return 0;
【问题讨论】:
char guess[10]="Programmer";
==> char guess[]="Programmer";
只是说。当您包含终止符时,Programmer
是一个 11 八位字节序列。我不太确定你认为i==guess[5]
应该做什么。将您的枚举变量 i
与 guess[5]
中的 content 进行比较听起来不太对,是吗?即使解决了这个问题,continue
也似乎是错误的。反正你要循环了,所以.. 继续 what ?我认为这需要自我解释,因为 test+continue 应该是 before 打印。
如果你想跳过那个索引,你应该说if (i == 5)
。但是您需要在打印之前 进行。
@WhozCraig 因为他从不使用guess
作为字符串,所以不需要终止符。
@WhozCraig 在这种情况下它不是一个字符串,而是一个 10 个字符的数组。那里没有错。
删除代码块末尾的continue
什么都不做。改为if(i != 5) printf("%c", guess[i]);
【参考方案1】:
这里是修复:
还如上所述更新了数组大小(它在任何地方都不会被视为字符串,但比抱歉更安全)。
#include <stdio.h>
#include <stdlib.h>
int main()
char guess[12]="Programmer";
char choice;
printf("Welcome to my guessing game\n");
printf("===============================\n");
int i;
for(i=0;i<10;i++)
if( i != 5 )
printf("%c", guess[i]);
printf("\n\n");
printf("Guess which letter is missing\n");
scanf(" %c",&choice);
if(choice==guess[5])
printf("Excellent! Good point");
else
printf("Ooops! Wrong answer\n");
return 0;
这是输出:
【讨论】:
【参考方案2】:首先,您需要在要跳过的指令之前编写 continue 语句。您是要跳过guess[5] 中相同的每个字符还是要跳过索引5?
如果您跳过与索引 5 处的字母相同的所有字母:
for(i=0;i<10;i++)
if(guess[i]==guess[5]) continue;
printf("%c", guess[i]);
如果您只想跳过索引 5 处的字母,请尝试:
for(i=0;i<10;i++)
if(i==5) continue;
printf("%c", guess[i]);
【讨论】:
【参考方案3】:您不应该与数组的元素进行比较,只需与您要跳过的索引进行比较。
您需要将continue
放在要跳过的语句之前。否则,这封信已经被打印出来了,继续没有用处。
for(i=0;i<10;i++)
if(i==5)
continue;
printf("%c", guess[i]);
【讨论】:
以上是关于使用一维数组和for循环的C语言字符猜谜游戏的主要内容,如果未能解决你的问题,请参考以下文章