特别是在学习编程的最开始,我正在努力解决如何将printf仅限制为有效输出,即确保printf不会出现在“break”语句之后 .
据我所知,我对scanf的测试是在for循环中,当我达到3时,for循环停止并出现printf . 我希望找到测试scanf的正确方法,并确保在break语句之后不出现printf(如果用户输入整数) .
// a program that calculates the average of an array
of 3 floating-point values and check if correct inputs
are types in scans (only floating values)
#include <stdio.h>
#include <stdbool.h>
int main (void)
{
float values[3];
float element, average;
float sum = 0;
int i, n;
bool is_float;
printf ("Please, enter 3 floating values: \n");
for ( i = 0; i < 3; i++)
{
scanf ("%f", &element);
is_float = 1;
n = (int) element;
if (n - element == 0 || element == 0 )
{
is_float = 0;
printf ("Sorry, invalid input\n");
break;
}
else
{
values[i] = element;
sum += values[i];
}
}
printf ("The average of 3 values is %.2f\n", sum / 3);
return 0;
}
谢谢!
1 回答
如果您希望程序在此行之后直接退出:
那么你必须用
printf
行直接替换break
语句,如下所示:另外请注意,当您要打印错误消息时,应使用
fprintf()
而不是printf()
. 整个for
循环看起来像这样: