私は初心者プログラマーです。浮動小数点数または文字を入力できない関数があります。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");
}