scanf函数的返回值是输入数据与格式匹配的数量,所以可以利用scanf的返回值来判断输入是否正确:
#include <stdio.h>
float add(float x, float y)
{
return x + y;
}
float minus(float x, float y)
{
return x - y;
}
float multiply(float x, float y)
{
return x*y;
}
float division(float x, float y)
{
return x / y;
}
int main()
{
//定义变量
float a, b, result;
int choose;
do
{
//输入数据
printf("1. 加法 2. 减法 \n");
printf("3. 乘法 4. 除法 \n");
printf("0. 退出程序\n");
printf("请选择: \n");
scanf("%d", &choose);
if (choose != 0)
{
printf("请输入两个数: ");
//=========================
//scanf返回值是输入数据与格式相匹配的数量
while (getchar() != '\n'); //先清空输入缓冲区,因为选择的时候可能会输入"2a"这样的情况
while (2 != scanf("%f %f", &a, &b))
{
printf("输入错误!请重新输入:");
while (getchar() != '\n'); //清空输入缓冲区
}
//===========================
}
switch (choose)
{
case 1:
result = add(a, b);
printf("result=%.2f\n", result);
break;
case 2:
result = minus(a, b);
printf("result=%.2f\n", result);
break;
case 3:
result = multiply(a, b);
printf("result=%.2f\n", result);
break;
case 4:
{
if (b == 0)
{
printf("结果错误\n");
}
else
{
result = division(a, b);
printf("result=%.2f\n", result);
}
}
break;
case 0:
printf("欢迎再次使用本软件,再见!\n");
break;
default:
printf("输入错误\n");
}
} while (choose != 0);
return 9;
}
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。