我有一个浮点数组,我需要用正数填充它,我想在将数据读入数组时进行输入验证,如果可能的话使用scanf()。
我想要更具体地做的是使用字符串数组作为输入,并使用开关逐个检查元素以查看它们是否为数字,然后将它们转换为浮点数并转换为浮点数组。 / p>
有人能告诉我一个如何做到这一点的例子吗?
答案 0 :(得分:0)
您可以使用scanf()
来解析数字并验证转换值的约束:
#include <stdio.h>
int main(void) {
float array[100];
for (int i = 0; i < 100; i++) {
if (scanf("%f", array + i) != 1) {
printf("invalid input for entry %d\n", i);
return 1;
}
if (array[i] < 0) {
printf("entry %d is negative: %f\n", i, array[i]);
return 1;
}
}
// do something with the array:
double sum = 0;
for (i = 0; i < 100; i++) {
sum += array[i];
}
printf("sum is %f\n", sum);
return 0;
}