#include <iostream>
#include <string>
using namespace std;
constexpr size_t cx_hash(const char* input) {
size_t hash = sizeof(size_t) == 8 ? 0xcbf29ce484222325 : 0x811c9dc5;
const size_t prime = sizeof(size_t) == 8 ? 0x00000100000001b3 : 0x01000193;
while (*input) {
hash ^= static_cast<size_t>(*input);
hash *= prime;
++input;
}
return hash;
}
int main() {
system("chcp 1251 > nul");
while (true) {
auto error_flag = false;
cout << "real: ";
double real;
cin >> real;
string word;
cin >> word;
switch (cx_hash(word.c_str())) {
case cx_hash("round"):
real = round(real);
break;
case cx_hash("floor"):
real = floor(real);
break;
case cx_hash("ceil"):
real = ceil(real);
break;
default:
error_flag = !error_flag;
cin.clear();
cin.ignore(0x1000, '\n');
}
if (error_flag) puts("error");
else cout << real << '\n';
}
}
Напиши программу-округлятор, которая работает следующим образом:
Пользователь вводит вещественное число, которое надо округлить
Затем пользователь вводит одну из трех команд, которая обозначает, как надо округлить число (round, floor, ceil)
Программа выводит округленное число
Формат входных данных
Вещественное число и одна из трех возможных команд (round, floor, ceil)
Формат выходных данных
Одно целое число - округленное число в соответствии с желанием пользователя