如何在每次循环时创建一个可以接受用户输入的循环?
#include <stdio.h>
#define WORD "jumble"
#define JUMBLED "mleujb"
int main()
{
char string[6];
int i = 0;
printf("The jumbled word is ");
printf(JUMBLED);
printf("\nCan you guess the original: ");
while(i == 0)
{
scanf("%d", string);
if (string == "exit")
{
return;
}
if(string == WORD)
{
i++;
printf("Kudos! You've guessed the word!");
}
else
{
printf("English please, good sir. Guess again.\n");
}
}
}
我所希望的是每次程序经过循环时,都需要一个带scanf函数的新输入。但是,这显然不起作用。相反,程序获取第一个scanf的值并反复使用它。如果它是错误的单词,它将有一个无限循环。
这个程序中有一些错误:例如,它实际上并没有将输入与实际单词进行比较。由于这与问题无关,因此不是我的直接关注。
答案 0 :(得分:2)
您错误地使用scanf()
而不是scanf("%d",string)
使用scanf("%s",string)
,因为%d用于十进制输入,而%s用于字符串输入
答案 1 :(得分:1)
准确帮助你的伪代码不是很好 您还可以更好地定义您的问题吗?你真的不知道出了什么问题
但这是我的猜测
您的测试是i == 0,这意味着只要您的用户输入正确的单词即可退出您的循环...
我猜你在寻找像
这样的东西exit_condition = 0;
while (exit_condition == 0)
{
read keyboard entry
if(condition to exit loop)
{
exit_condition = 1;
printf("correct")
}
else
{
printf("try again")
}
}
关于测试,我认为你需要读取输入和测试的位
试试这个
答案 2 :(得分:1)