我试图让我的程序仅在用户输入Y或y时运行,但它只运行一次,即使它不是Y或y。输入将是Y,y,N或n
printf("Welcome to the Jumble Puzzle Solver!\n\n");
printf("Would you like to enter a jumbled word?\n");
scanf("%s", &answer);
do{
printf("What word would you like scored?\n");
scanf("%s", &letters);
strcpy(changeletters, letters);
recursivepermute(letters, changeletters, checkword, k, dictionary ,max, min);
printf("Would you like to enter a jumbled word?\n");
scanf("%s", &answer);
}while (answer == 'Y' || answer == 'y');
答案 0 :(得分:1)
do { } while()
会导致身体始终至少执行一次 。如果您想先检查条件,只需使用while:
// If answer is:
// char answer;
scanf("%c", &answer);
while (answer == 'Y' || answer == 'y')
{
printf("What word would you like scored?\n");
// ...
scanf("%c", &answer);
}
如果scanf("%c"
是answer
,您还需要使用char
。 %s
是扫描一串字符(即:char[20]
),需要使用strcmp
或类似的方法进行不同的检查。
答案 1 :(得分:0)
如果您希望用户一次玩游戏,然后再被要求再次播放,则使用do-while
循环更合适。但是如果你想给用户提供根本不玩游戏的选项那么使用while
循环