在C编程中-如何中断非数值输入的for循环



试着编写一个C程序。浮点数组中的5个用户输入。然后打印该数组并打印另一个累加数字的数组。它工作得很好,但我如何打破输入并打印"不是数字"?如果输入是非数字的?

#include <stdio.h>
int main(){
float i,sum;
sum=0;

const int ARRAYSIZE = 5;

float array1[ARRAYSIZE];
printf("Input a number (a total of %d numbers is needed):n", ARRAYSIZE);
fflush(stdout);
for(int i = 0; i < ARRAYSIZE;  i++){
scanf("%f", &array1[i] );
}
for(int i = 0; i < ARRAYSIZE; i++){
printf("You typed in: %.2lfn",array1[i]);
}
for(int i = 0; i < ARRAYSIZE; i++){
sum+=array1[i];
printf("The accumulated value if the input is: %.2lfn", sum);
}
return 0;
}

检查scanf的返回值

if(scanf("%f", &array1[i] ) != 1)
{
printf("Invalid numbern");
/* so more code */
}

最新更新