13ч



Программирование
+2Помогите код на C++

По дате
По рейтингу
трубка для чая мечтала стать артистом, но живет на крыше большого апельсина.
ChatGPT не помогает? Такие примитивные задачи он умеет решать
А почему в последнем -117 вне диапазона? Оно же меньше, чем 100?
Ну и из этого понятно, что в задаче неверное условие. Чисел меньше чем 100 бесконечно много, невозможно написать программу для конечного автомата, которая бы могла назвать все такие числа.
1234567891011121314151617181920212223242526272829303132333435363738394041424344
#include <iostream>
#include <string>
using namespace std;
string num_to_words(int n) {
if (n < 0) return "минус " + num_to_words(-n);
string units[] = {"ноль", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"};
string teens[] = {"десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать",
"шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"};
string tens[] = {"", "десять", "двадцать", "тридцать", "сорок", "пятьдесят",
"шестьдесят", "семьдесят", "восемьдесят", "девяносто"};
if (n < 10) return units[n];
else if (n < 20) return teens[n - 10];
else if (n < 100) {
string res = tens[n / 10];
if (n % 10 != 0) res += " " + units[n % 10];
return res;
}
else return "";
}
int main() {
int a, b;
cout << "Введите целое число: ";
cin >> a;
cout << "Введите целое число: ";
cin >> b;
if (abs(a) >= 100 || abs(b) >= 100) {
cout << "Ошибка! Одно из чисел вне диапазона!" << endl;
} else {
string a_word = num_to_words(a);
string b_word = num_to_words(b);
if (a < b) cout << a_word << " меньше чем " << b_word << endl;
else if (a > b) cout << a_word << " больше чем " << b_word << endl;
else cout << a_word << " равно " << b_word << endl;
}
return 0;
}
Больше по теме