C语言四则运算计算器的一个问题

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
    int a1,a2,a3;
    char op1,op2,op3;
    //为了保证结构,在最开始加上一个0+
    a1 = 0;
    op1 = '+';
    while(op1!='=')
    {
        scanf("%d %c",&a2,&op2);    //这里用一个空格来忽略空白符
        //计算乘除
        while(op2=='*' || op2=='/')
        {
            scanf("%d %c",&a3,&op3);
            if(op2=='*')
                a2 *= a3;
            else if(op2=='/')
                a2 /= a3;
            op2 = op3;    //此处注意
        }
        //将两项相加(减)
        if(op1=='+')
            a1 += a2;
        else if(op1=='-')
            a1 -= a2;
        op1 = op2;    //此处注意
    }
    printf("%d",a1);
    return 0;
}


我想请教一下,怎么样修改一下代码,使得输入的表达式不含“=”号也能运行并输出结果。如 输入 5+2/2 ,输出 =6.

代码非原创,原文出自:https://blog.csdn.net/dannis_bh/article/details/51002627

如果不含=,那么怎么知道表达式输入完了呢。比如
5+2/2
那么怎么知道应该输出结果了,而不是也许用户希望输入5+2/21
而且,你这个代码似乎并不能计算带有优先级的表达式,5+2/2,它只能计算a+b a*b之类的单个运算。
建议你找一个别的代码吧。这类代码有很多。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^