9-1
(3/3 分數) 題目描述
從指令行讀入若幹指令,執行相應計算。
指令 格式 意義
SET SET x 設定運算結果為x
ADD ADD x 運算結果+x
SUB SUB x 運算結果-x
MUL MUL x 運算結果*x
DIV DIV x 運算結果/x
OUT OUT 輸出運算結果并換行,結果保留2位小數
上述指令的參數x都為浮點數,且保證不會除以0。
輸入格式
第一行為測試樣例個數n,後面接n行測試資料,每一行包含若幹指令,指令間空格隔開
輸出格式
輸出結果并換行,保留兩位小數
樣例輸入
2
SET 2.5 MUL 2 SUB 1 OUT
SET 3 DIV 3 OUT
樣例輸出
4.00
1.00
代碼框
#include <iostream>
#include <vector>
#include <iomanip>
#include <cstring>
using namespace std;
const int M=100;
const int N=100;
int main(){
int n;
cin>>n;
vector<double>a(n);
vector<string>b(6);
b[0]="SET";
b[1]="ADD";
b[2]="SUB";
b[3]="MUL";
b[4]="DIV";
b[5]="OUT";
for(int i=0;i<n;i++){
vector<double>number(M);
vector<string>instruction(N);
int j=0;
cin>>instruction[0];
if(instruction[0]!=b[0]) return false;
while(instruction[j]!=b[5]){
j++;
cin>>number[j]>>instruction[j];
}
int k=0;
a[i]=number[1];
while(instruction[k]!=b[5]){
k++;
if(instruction[k]==b[1]) a[i]=a[i]+number[k+1];
else if(instruction[k]==b[2]) a[i]=a[i]-number[k+1];
else if(instruction[k]==b[3]) a[i]=a[i]*number[k+1];
else if(instruction[k]==b[4]) a[i]=a[i]/number[k+1];
}
}
for(int i=0;i<n;i++)
cout << fixed << setprecision(2)<<a[i]<<endl;
}