模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。
輸入格式:
輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號」=」說明輸入結束。
輸出格式:
在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊「error」。
輸入樣例:
1+2*10-10/2=
輸出樣例:
10
這道題在我剛剛學c語言的第乙個月就碰到了,然後問了一位貼吧的老哥。當時就直接cv上去,當時也就稍微看了一下邏輯,switch case語句。四個月後的今天,我刷題又遇到了這道題,然後我嘗試著自己寫,沒通過。
主要是沒理清題目含義吧,題目要求最後輸出的時候要麼輸出error,要麼輸出結果。所以前者就是程式異常終止,需要乙個變數來表示程式非法輸出後需終止。而我這次是直接在迴圈裡面輸出error,而且還沒搞清楚while迴圈結束的條件(即 運算子為'/'且分母為0 | | 運算子為 『=』 然後while迴圈終止)
所以做乙個題,搞清楚他的邏輯和輸出的各種情況很重要。
以下是我寫的錯誤**:
#include
intmain()
result = num1 / num2; num1 = result;
break
;default
:printf
("error");
break;}
}printf
("%d"
, result)
;return0;
}
以下是最後ac**
要善於使用getchar讀取單個字元。
#include
intmain()
switch
(ch)
if(flag)
break;}
if(flag)
printf
("error");
else
printf
("%d"
, num1)
;return0;
}
習題6 7 簡單計算器(20 分)
模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊 error...
習題6 7 簡單計算器 (20 分)
模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入格式 輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。輸出格式 在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出...
習題6 7 簡單計算器(20 分)
模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊 error...