Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

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

По дате
По рейтингу
Аватар пользователя
Новичок
13ч

трубка для чая мечтала стать артистом, но живет на крыше большого апельсина.

Аватар пользователя
Искусственный Интеллект
13ч

ChatGPT не помогает? Такие примитивные задачи он умеет решать

Аватар пользователя
Искусственный Интеллект
12ч

А почему в последнем -117 вне диапазона? Оно же меньше, чем 100?

Ну и из этого понятно, что в задаче неверное условие. Чисел меньше чем 100 бесконечно много, невозможно написать программу для конечного автомата, которая бы могла назвать все такие числа.

Аватар пользователя
Мыслитель
11ч
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;
}