2013-04-21 79 views
0

底部printf()不在控制檯上打印操作員變量。但只打印number1number2。原因是什麼?爲什麼printf不在控制檯上打印「操作員」?

產量: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); 
+7

調高編譯器警告。 '=='不分配值。 – 2013-04-21 13:57:42

+1

您必須爲'operator'指定一個值。 – 2013-04-21 13:58:28

+1

此外,這是一個C++關鍵字,如果您想要將代碼移植到C++,您可能需要避免這種情況。 – ApplePie 2013-04-21 13:59:46

回答

10
operator=='+'; 

應該是

operator='+'; 

同爲其他運營商

C中的分配是與=

的相等比較是與==例如if(operator == '+')

3

==是等號運算符,它不分配值只是檢查雙方是否相等。

您必須使用賦值運算符=

例如:

operator='/'

3

而不是使用分配運營商=的,您使用的是比較操作==的。

因此在operator=='+'之後operator的值保持不變。