题目描述
9.使用if-else语句和 switch 语句设计一个程序,使其可以讽别有两个操作符(操作符可以是加,减、乘、除)的表达式。要注意操作符有优先级。
运行时输入输出情况如下:
请输人一个表达式(eg.1 +2工 3);
1+2*3
1+2*3=7
源代码
下面是使用C语言的if-else语句和switch语句设计的一个可以计算带有两个操作符的表达式的程序:
#include <stdio.h>
int main() {
int num1, num2, num3;
char op1, op2;
printf("请输入一个表达式(例如:1 + 2 * 3):");
scanf("%d %c %d %c %d", &num1, &op1, &num2, &op2, &num3);
int result;
if (op2 == '*' || op2 == '/') {
switch (op2) {
case '*':
result = num2 * num3;
break;
case '/':
result = num2 / num3;
break;
}
switch (op1) {
case '+':
result = num1 + result;
break;
case '-':
result = num1 - result;
break;
}
} else {
switch (op1) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
switch (op2) {
case '+':
result = result + num3;
break;
case '-':
result = result - num3;
break;
case '*':
result = result * num3;
break;
case '/':
result = result / num3;
break;
}
}
printf("%d %c %d %c %d = %d\n", num1, op1, num2, op2, num3, result);
return 0;
}
运行程序后,它会要求您输入一个表达式,例如”1 + 2 * 3″。然后,程序将解析表达式中的操作数和操作符,并按照操作符的优先级进行计算,最后输出计算结果。
根据您的示例输入”1 + 2 * 3″,程序将输出”1 + 2 * 3 = 7″。
请注意,此程序仅处理带有两个操作符的表达式,并假设输入的表达式格式正确。对于更复杂的表达式或错误的输入,可能需要进行额外的错误处理和验证。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END