tempat-terbatas/4.31 tempat terbatas MUHAMMAD RAFI GHAZI AL QARY.cpp

51 lines
1.2 KiB
C++

#include <iostream>
#include <sstream>
#include <vector>
#include <cmath>
using namespace std;
// Fungsi untuk melakukan operasi sesuai operator
int operasi(int a, char op, int b) {
switch (op) {
case '+': return a + b;
case '-': return a - b;
case '*': return a * b;
default: return 0; // Jika operator tidak dikenal
}
}
// Fungsi untuk memproses satu baris ekspresi
int prosesEkspresi(const string& ekspresi) {
stringstream ss(ekspresi);
vector<string> tokens;
string token;
while (ss >> token) {
tokens.push_back(token);
}
int hasil = stoi(tokens[0]);
for (size_t i = 1; i < tokens.size(); i += 2) {
char op = tokens[i][0];
int angka = stoi(tokens[i + 1]);
hasil = operasi(hasil, op, angka);
}
return abs(hasil);
}
int main() {
vector<string> soal = {
"4 + 2 - 0 * 0",
"1 + 1 + 1 + 1",
"10 - 10 * 100 - 5"
};
for (size_t i = 0; i < soal.size(); ++i) {
int hasil = prosesEkspresi(soal[i]);
cout << "h#" << i + 1 << ": " << hasil << endl;
}
return 0;
}