使用if-else语句和 switch 语句设计一个程序

题目描述

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
喜欢就支持一下吧
点赞14赞赏 分享