我做了一个计算器,但它没有按预期工作。我究竟做错了什么?

I made a calculator, but it does not work as expected. What am I doing wrong?

#include <stdio.h>

int main() {
    int n1,n2 ;

    char operator ;

    printf("enter the expression");

    scanf("%d","%c","%d",&n1,&operator,&n2);

    if (operator == '+') {
        printf("%d+%d=%d",n1,n2,n1+n2);
    } else if (operator == '-') {
        printf("%d-%d=%d",n1,n2,n1-n2);
    } else if (operator == '*') {
       printf("%d*%d=&d",n1,n2,n1*n2);
    } else if (operator == '/') {
        printf("%d/%d=%d",n1,n2,n1/n2);
    } else {
        printf("wrong input");
    }
    return 0;
}

此代码未显示任何错误,但未按预期 运行。输入表达式后,它没有给我输出

您的 scanf 调用不正确。您应该将所有内容放在一个字符串中:

scanf("%d%c%d",&n1, &operator, &n2);

另见 documentation

我试过了,现在可以用了。

你可以单独做scanf 或者你可以做一个数组(这个选项让你有更多的控制权,但你必须做更多的事情)