Напиши код работы на C++ На ввод в программу натурального числа не превышающего миллион программа выводит словами на русском языке введённое число и слово учеников например на ввод числа 21385 программа выводит "двадцать одна тысяча триста восемьдесят учеников
Ответ нейросети
11 марта 2025 10:35
Для решения задачи на C++ нам нужно написать программу, которая принимает натуральное число до одного миллиона и выводит его представление словами на русском языке, добавляя в конец слово "учеников".
Вот пошаговое объяснение кода:
Определение массивов для чисел: Мы создадим массивы для единиц, десятков, сотен и тысяч, чтобы упростить преобразование чисел в слова.
Обработка входного числа: Мы будем обрабатывать число, разбивая его на составляющие (тысячи, сотни, десятки, единицы), и соответственно формировать строку для их представления.
Формирование строки: Составим строку из слов, представляющих число, и добавим слово "учеников".
Вот пример кода:
#include <iostream>
#include <string>
using namespace std;
string единицы[] = {"", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"};
string десятки[] = {"", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто"};
string teen[] = {"десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"};
string сотни[] = {"", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот"};
string тысячи[] = {"", "одна", "две", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"};
string число_в_словах(int n) {
if (n == 0) return "ноль";
string результат = "";
if (n >= 1000) {
результат += тысячи[n / 1000] + " тысяча ";
n %= 1000;
}
if (n >= 100) {
результат += сотни[n / 100] + " ";
n %= 100;
}
if (n >= 20) {
результат += десятки[n / 10] + " ";
n %= 10;
} else if (n >= 10) {
результат += teen[n - 10] + " ";
n = 0;
}
результат += единицы[n];
return результат;
}
int main() {
int number;
cout << "Введите натуральное число не превышающее миллион: ";
cin >> number;
if (number < 1 || number >= 1000000) {
cout << "Ошибка! Введите число в диапазоне от 1 до 999999." << endl;
return 1;
}
string результат = число_в_словах(number);
результат += " учеников";
cout << результат << endl;
return 0;
}
Объяснение кода:
Библиотеки: Мы подключаем библиотеку
<iostream>для ввода/вывода и<string>для работы со строками.Массивы: Мы определяем массивы для единиц, десятков, десятков от 10 до 19 (teen), сотен и тысяч.
Функция
число_в_словах: Эта функция принимает число и возвращает его представление в виде строки.- Сначала проверяем, не превышает ли число 999, затем разбиваем его на части: тысячи, сотни, десятки и единицы.
- Строка формируется путем конкатенации соответствующих частей с пробелами.
Основная функция
main: Здесь происходит ввод числа и вывод результата.- Проверяется, чтобы число находилось в заданном диапазоне.
- Вызывается функция для преобразования числа в слова и добавляется окончание "учеников".
Таким образом, вы можете вводить числа, и программа будет корректно их выводить словами.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



