0

底部printf()不在控制台上打印运算符变量。但只有number1number2被打印出来。可能是什么原因?

输出: 2 7 是多少?

char operator;

    switch(type){   
        case 1: 
        operator=='+';
        result=number1+number2;
        break;
        case 2: operator=='-';
        result=number1-number2;
        break;
        case 3: operator=='*';
        result=number1*number2;
        break;
        case 4: 
        operator=='/';
        result=number1/number2;
        break;

    }       
    printf("How much is %d %c %d ?",number1, operator, number2);
4

3 回答 3

10
operator=='+';

应该

operator='+';

其他运营商也一样

c中的赋值=只有

相等的比较是用==例子if(operator == '+')

于 2013-04-21T13:58:09.073 回答
3

==是相等运算符,它不分配值只是检查两侧是否相等。

您必须使用赋值运算符=

例如:

operator='/'

于 2013-04-21T14:01:22.103 回答
3

您使用的是比较运算符,而不是使用赋值运算符。===

因此之后的operator=='+'operator保持不变。

于 2013-04-21T14:02:08.037 回答