我是一个初学者程序员。我有一个不允许输入浮点数或字符的函数。它在 gcc 3.4.2 上运行良好,但现在我更新到 4.7.1 并且无法正常运行。它现在仅适用于第一个输入 a[0]。如果我输入让我们说'x',它会显示“错误输入”,但是如果我输入例如'1' for a[0],然后输入'x' for a[1],它仍然会说 Input OK and将“1”分配给 a[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");
}