1

我试图让我的程序仅在用户输入 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');
4

2 回答 2

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"if answeris a char。这%s是扫描一串字符(即:)char[20],并且需要使用类似strcmp或类似的方法进行不同的检查。

于 2012-10-12T23:55:07.540 回答
0

如果您希望用户玩一次游戏然后被询问是否再次玩,那么使用do-while循环更合适。但是如果你想让用户选择根本不玩游戏,那么使用while循环

于 2012-10-12T23:59:54.173 回答