所以我希望我的程序在两个值之间进行算术计算:
1.首先,我希望我的程序检查输入的 2 个值是否是数字
2.如果这是正确的,我不希望它运行一个 switch 语句,这取决于运算符将进行计算
3.如果输入的运算符不是有效的一个(*,+,-,/)然后我不想返回错误,说明运算符无效
4.如果值不是数字,我不想显示输入的值无效
例如,如果我输入 K * 2 我希望程序说“错误无效值”
如果我输入 20 ?2 程序应返回“错误有效运算符”
我尝试使用 {} 和 () 来包装 switch 函数,但似乎没有任何效果
#include <stdio.h>
int main (void)
{
float value1, value2;
char Operator;
printf("Enter your two values expression (x (+, -, *, /) y): ");
scanf("%f %c %f", &value1, &Operator, &value2);
if( (value1>=0 && value1<=9) || (value2>=0 && value2<=9) )
switch(Operator)
{
case '+':
printf("The result is: %.2f \n", value1+value2);
break;
case '-':
printf("The result is: %.2f \n", value1-value2);
break;
case '*':
case 'x':
case 'X':
printf("The result of this multiplication is: %.2f \n",
value1*value2);
break;
case '/':
if(value1==0 || value2==0)
printf("Error 1 you can't divide by 0 \n");
else
printf("The result of this division is: %.2f \n", value1/value2);
break;
default:
printf("Error please enter a valid operator \n");
break;
}
else printf("Error please enter a valid value \n");
}
当我输入无效值时,程序返回“错误请输入有效运算符”而不是 else 语句“错误请输入有效值”
此外,如果第一个值正确但第二个不正确,假设:10*c 而不是返回“错误,请输入有效值”,它返回 0。