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()本体が常に少なくとも 1 回実行されるようにします。最初に条件をチェックしたい場合は、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 に答える