#include <stdio.h>
int input_y_n()
{
char check;
while (1)
{
printf("请输入y,Y;n,N:");
if (scanf(" %c", &check) == 1)
{
if (check == 'y' || check == 'Y')
{
return 1;
}
else if (check == 'n' || check == 'N')
{
return 0;
}
else
{
continue;
}
}
else
{
continue;
}
}
}
int main()
{
float num1, num2, result;
char op;
while (1)
{
printf("请依次输入操作数1 操作符 操作数2:");
if (scanf("%f %c %f", &num1, &op, &num2) == 3)
{
switch (op)
{
case '+':
printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
break;
case '-':
printf("%.2f + %.2f = %.2f\n", num1, num2, num1 - num2);
break;
case '*':
printf("%.2f + %.2f = %.2f\n", num1, num2, num1 * num2);
break;
case '/':
printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
break;
default:
printf("error\n");
break;
}
}
else
{
printf("error\n");
}
if (!input_y_n())
{
break;
}
}
}
当我输入类似a+b这样的错误输入时为什么多次执行了int input_y_n()函数