Program wczytuje ze standardowego wejścia trzy ciągi znaków: a, op i b, reprezentujące kolejno pierwszą liczbę, znak porównania i drugą liczbę. Następnie program porównuje je za pomocą funkcji compare, która zwraca -1, 0 lub 1 w zależności od tego, czy a jest mniejsze, równe czy większe od b. Na koniec program sprawdza, czy nierówność podana na wejściu jest spełniona, i wypisuje odpowiednie słowo na wyjście.
Odpowiedź:
#include <iostream>
#include <string>
using namespace std;
int compare(string a, string b) {
if (a.length() < b.length()) {
return -1;
} else if (a.length() > b.length()) {
return 1;
} else {
return a.compare(b);
}
}
int main() {
string a, b, op;
cin >> a >> op >> b;
int result = compare(a, b);
if ((op == "<" && result < 0) ||
(op == ">" && result > 0) ||
(op == "<=" && result <= 0) ||
(op == ">=" && result >= 0) ||
(op == "==" && result == 0) ||
(op == "!=" && result != 0)) {
cout << "TAK" << endl;
} else {
cout << "NIE" << endl;
}
return 0;
}
Wyjaśnienie:
Program wczytuje ze standardowego wejścia trzy ciągi znaków: a, op i b, reprezentujące kolejno pierwszą liczbę, znak porównania i drugą liczbę. Następnie program porównuje je za pomocą funkcji compare, która zwraca -1, 0 lub 1 w zależności od tego, czy a jest mniejsze, równe czy większe od b. Na koniec program sprawdza, czy nierówność podana na wejściu jest spełniona, i wypisuje odpowiednie słowo na wyjście.