x > 2
x < 2
Объяснение:
Операция И имеет приоритет перед операцией ИЛИ
((Х < 3) и (X < 2)) или ((X > 2) и (X > 0))
Между двумя выражениями стоит операция ИЛИ, которая означает, что хотя бы одно из выражений должно быть истинным, чтобы всё выражение было истинным.
Возьмём первое выражение:
(Х < 3) и (X < 2)
Тут мы видим операцию И, которая указывает на то, что оба значения должны быть истинными, чтобы всё выражение было истинно, т. е. в данном выражении значение X должно быть < 2, чтобы выражение было истинным
(1 < 3) и (1 < 2) - true [истина]
(0 < 3) и (0 < 2) - true [истина]
и т. д.
Возьмём второе выражение:
(X > 2) и (X > 0)
Тут мы видим операцию И, которая указывает на то, что оба значения должны быть истинными, чтобы всё выражение было истинно, т. е. в данном выражении значение X должно быть > 2, чтобы выражение было истинным
(3 > 2) и (3 > 0) - true [истина]
(4 > 2) и (4 > 0) - true [истина]
и т. д.
Вернемся к тому, что между выражениями стоит операция ИЛИ, т. е. должны выполняться или левая, или правая часть. Приходим к итогу, что:
x > 2x < 2
#include <iostream>
#include <string>
#include <algorithm>
#include <Windows.h>
using namespace std;
bool check_alphabet(char symbol) {
string alphabet = "";
for (size_t j = 0; j < alphabet.size(); j++)
{
if (alphabet[j] == symbol) {
return true;
}
}
return false;
}
pair<int,string> erase_counter_char_in_str_not_latin(string str) {
int i = 0;
int count = 0;
while (i <= str.size() - 1) {
if (not (check_alphabet(toupper(str[i] {
str.erase(str.begin() + i);
count++;
i--; // раз удалили, то нужно вернуться назад на один: i~45m -> i5~m (i уже идёт на следующий)
}
i++;
}
return make_pair(count, str);
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Russian");
string str;
cout << "Введите строку: " << endl;
cin >> str;
pair<int,string> pair_count_str = erase_counter_char_in_str_not_latin(str);
cout << endl << "Удалено: " << pair_count_str.first << endl;
cout << "Конечная строка: " << pair_count_str.second;
}