0

私は初心者プログラマーです。浮動小数点数または文字を入力できない関数があります。gcc 3.4.2 では問題なく動作していましたが、4.7.1 にアップデートしたところ、正しく動作しません。最初の入力 a[0] でのみ機能します。「x」と入力すると、「間違った入力」と表示されますが、たとえば a[0] に「1」を入力し、次に a[1] に「x」と入力すると、入力 OK と表示され、 [1] に '1' を割り当てます。どうすればこれを修正できますか? ありがとうございました!

void initArray(unsigned int a[]) {

double q;
int x, c;

for ( x = 0; x < SIZE; x++){
    printf("a[%d] ", x);
    printf("Enter number: ");

    scanf("%lf", &q);

    if (q == (unsigned int) q) {
        printf("Input OK.\n");
        a[x] = q;
        fflush(stdin);
    }
    else {
        printf("Wrong Input\n");
        fflush(stdin);
        x--;
    }
}
printf("\n");
} 
4

2 に答える 2