1

ユーザーが番号を入力できるようにループを作成しようとしています。各番号の後に、別の番号を入力するかどうかを確認するメッセージが表示されます。nまたは以外を選択するNと、カウントが増えるため、ループは続行されますが、そうではありません。

#include <stdio.h>

main() {

    int nums[10], i, tot = 0;
    int answer;
    double avg;

    int count = 1;

    for (i = 0; i < count; i++) {
        printf("Enter number %d: ", i + 1);
        scanf("%d", &nums[i]);
        printf("Enter another number? ");
        scanf(" %c", &answer);
        tot += nums[i];
        if (answer != 78 && answer != 110) {
            count++;
        }
        else { count = count - 1; }
        printf("[c:%d][i:%d]", count, i);
    }

}

私が得る出力:

Enter number 1: 2
Enter another number? y
[c:2][i:0]Enter number 2: 3
Enter another number? y
[c:3][i:1]Enter number 3: 4
Enter another number? n
[c:4][i:2]Enter number 4: 1
Enter another number? n
[c:5][i:3]Enter number 5: 2
Enter another number? n
[c:6][i:4]Enter number 6: 2
Enter another number? n
[c:7][i:5]Enter number 7: ^C

nまたはを入力しても、カウント変数はデクリメントされませNん。なぜですか?ループを終了するためにデクリメントすることになっていますが、使用break;も機能しません。

4

1 に答える 1

7

おそらくintではなくanswertypeで作成したいと思うでしょう。char

于 2012-04-04T21:49:38.237 に答える