習題2 1 簡單計算器

2021-10-07 00:05:44 字數 1891 閱讀 4675

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。

輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號」=」說明輸入結束。

在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊「error」。

1+2*10-10/2=
10
/*c++語言*/

#include #include using namespace std;

int main()

else

sum/=num;

}else

cin>>c;

}cout<= '0' && s.charat(i) <= '9')

if(ch == 0)a = b;

else

else a /= b;

}else }}

else

}

ch = s.charat(i);

} }

#python語言

target = input()

count = 0

#將第乙個數和第乙個運算子記錄下來

for i in target:

count += 1

if i.isdigit():

if count > 1:

a = a*pow(10,count-1) + int(i)#前乙個數

else:

a = int(i)

else:

op = i

break

target = target[count:]

count = 0#記錄是否有連續的數字被讀取

count1 = 0#記錄是否有連續的運算子被讀取

#主體部分

if op != '=' and op in ['+','-','*','/'] and target[0].isdigit():

if op == '/':

if int(target[0]) == 0:

print('error')#對op和第乙個值進行判斷,特殊情況:字母為0

else:#進行迭代運算

for i in target:

if i.isdigit():

count1 = 0

count += 1

if count > 1:

b = b*pow(10,count-1) + int(i)#後乙個數

else:

b = int(i)

if i in ['+','-','*','/','=']:

count += 1

count = 0

if count > 1:#特殊情況:非法字元

print('error')

break

if op == '+':

a += b

elif op == '-':

a -= b

elif op == '*':

a = a * b

elif op == '/':

if b != 0:

a = a / b

else:#特殊情況:分母為0

print('error')

break

op = i

if op == '=':

print(int(a))

break

elif op == '=':#特殊情況:最小表示式

print(int(a))

else:#特殊情況:非法字元

print('error')

習題2 1 簡單計算器 20分

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯誤資訊 error...

習題2 1 簡單計算器 20point s

模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入格式 輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。輸出格式 在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出...

習題6 7 簡單計算器

習題6 7 簡單計算器 20分 模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,四種運算子的優先順序相同,按從左到右的順序計算。輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運...