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