1. Дано целое число, лежащее в диапазоне от 1 до 999. Вывести строку - словесное описание данного числа. Например, введено число 123. Вывести строку «сто двадцать три».
2. Дано целое число в диапазоне 20 - 69, что определяет возраст (в годах). Вывести словесное описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 - "двадцать лет", 32 - "тридцать два года", 41 - "сорок один год".
#include
using namespace std;
void main()
{
setlocale(LC_ALL, "RU");
int task;
cout << "Введите задание:";
cin >> task;
switch (task)
{
case 1:
int hundred, tens, unit, tenz;
cout << "Введите число";
cin >> tenz;
if (tenz >= 1 && tenz <= 999)
{
hundred = tenz / 100;
tens = tenz % 100 / 10;
unit = tenz % 10;
}
switch (hundred)
{
case 1: { cout << " Сто "; } break;
case 2: { cout << " Двести "; } break;
case 3: { cout << " Триста "; } break;
case 4: { cout << " Четыреста "; } break;
case 5: { cout << " Пятьсот "; } break;
case 6: { cout << " Шестьсот "; } break;
case 7: { cout << " Семьсот "; } break;
case 8: { cout << " Восемьсот "; } break;
case 9: { cout << " Девятьсот "; } break;
}
if (tens == 1)
{
switch (unit)
{
case 1: { cout << " Одиннадцать "; } break;
case 2: { cout << " Двенадцать "; } break;
case 3: { cout << " Тринадцать "; } break;
case 4: { cout << " Четырнадцать "; } break;
case 5: { cout << " Пятнадцать "; } break;
case 6: { cout << " Шестнадцать "; } break;
case 7: { cout << " Семнадцать "; } break;
case 8: { cout << " Восемнадцать "; } break;
case 9: { cout << " Девятнадцать "; } break;
}
}
else
{
tens = tenz % 100 / 10;
switch (tens)
{
case 1: { cout << " Десять "; } break;
case 2: { cout << " Двадцать "; } break;
case 3: { cout << " Тридцать "; } break;
case 4: { cout << " Сорок "; } break;
case 5: { cout << " Пятьдесят "; } break;
case 6: { cout << " Шестьдесят "; } break;
case 7: { cout << " Семьдесят "; } break;
case 8: { cout << " Восемьдесят "; } break;
case 9: { cout << " Девяносто "; } break;
}
unit = tenz % 10;
switch (unit)
{
case 1: { cout << " Один "; } break;
case 2: { cout << " Два "; } break;
case 3: { cout << " Три "; } break;
case 4: { cout << " Четыре "; } break;
case 5: { cout << " Пять "; } break;
case 6: { cout << " Шесть "; } break;
case 7: { cout << " Семь "; } break;
case 8: { cout << " Восемь "; } break;
case 9: { cout << " Девять "; } break;
}
}
case 2:
int year, years, yearz;
cout << " Введите возраст : " << endl;
cin >> year;
if (year >= 20, year <= 69)
{
years = year / 10;
yearz = year % 10;
}
switch (years)
{
case 2: { cout << " Двадцать "; } break;
case 3: { cout << " Тридцать "; } break;
case 4: { cout << " Сорок "; } break;
case 5: { cout << " Пятьдесят "; } break;
case 6: { cout << " Шестьдесят "; } break;
switch (yearz)
{
case 1: { cout << " Один год "; } break;
case 2: { cout << " Два года"; } break;
case 3: { cout << " Три года"; } break;
case 4: { cout << " Четыре года"; } break;
case 5: { cout << " Пять лет"; } break;
case 6: { cout << " Шесть лет"; } break;
case 7: { cout << " Семь лет"; } break;
case 8: { cout << " Восемь лет"; } break;
case 9: { cout << " Девять лет"; } break;
}
}
}
Почему во 2 case при вводе 23 отображается только 20?
Почему при вводе задания 1 при вводе числа пишет в конце введите возраст?
Другие языки программирования и технологии
Подскажите с корректировкой текущего кода с++
Почему при вводе задания 1 при вводе числа пишет в конце введите возраст?
Потому что пропущено ключевое слово break в конце первого case
case 1:
...
...
...
break;
case2:
...
...
...
break;
Почему во 2 case при вводе 23 отображается только 20?
Потому-что у вас не закрыт switch и получается после вывода "Двадцать" срабатывает break который и пропускает все что находится в switch далее.
switch (years)
{
case 2: { cout << " Двадцать "; } break;
case 3: { cout << " Тридцать "; } break;
case 4: { cout << " Сорок "; } break;
case 5: { cout << " Пятьдесят "; } break;
case 6: { cout << " Шестьдесят "; } break;
//вот тут стоит закрыть switch фигурной скобкой, а иначе
switch (yearz) //этот switch не будет срабатывать
{
case 1: { cout << " Один год "; } break;
case 2: { cout << " Два года"; } break;
case 3: { cout << " Три года"; } break;
case 4: { cout << " Четыре года"; } break;
case 5: { cout << " Пять лет"; } break;
case 6: { cout << " Шесть лет"; } break;
case 7: { cout << " Семь лет"; } break;
case 8: { cout << " Восемь лет"; } break;
case 9: { cout << " Девять лет"; } break;
}
P.S. Желательно грамотно чередовать switch(case) или if для того что бы было наглядно. Например задачи можно было выполнять при помощи if
if(task == 1)
{
...
...
...
}
else if(task == 2)
{
...
...
...
}
Года у вас не правильно сработают при 11, 12, 13 и так до 20... А вообще я бы создал функцию и для чисел и для лет выводящую число на экран. И тогла осталось придумать как определять лет там или года выводить!
Потому что пропущено ключевое слово break в конце первого case
case 1:
...
...
...
break;
case2:
...
...
...
break;
Почему во 2 case при вводе 23 отображается только 20?
Потому-что у вас не закрыт switch и получается после вывода "Двадцать" срабатывает break который и пропускает все что находится в switch далее.
switch (years)
{
case 2: { cout << " Двадцать "; } break;
case 3: { cout << " Тридцать "; } break;
case 4: { cout << " Сорок "; } break;
case 5: { cout << " Пятьдесят "; } break;
case 6: { cout << " Шестьдесят "; } break;
//вот тут стоит закрыть switch фигурной скобкой, а иначе
switch (yearz) //этот switch не будет срабатывать
{
case 1: { cout << " Один год "; } break;
case 2: { cout << " Два года"; } break;
case 3: { cout << " Три года"; } break;
case 4: { cout << " Четыре года"; } break;
case 5: { cout << " Пять лет"; } break;
case 6: { cout << " Шесть лет"; } break;
case 7: { cout << " Семь лет"; } break;
case 8: { cout << " Восемь лет"; } break;
case 9: { cout << " Девять лет"; } break;
}
P.S. Желательно грамотно чередовать switch(case) или if для того что бы было наглядно. Например задачи можно было выполнять при помощи if
if(task == 1)
{
...
...
...
}
else if(task == 2)
{
...
...
...
}
Года у вас не правильно сработают при 11, 12, 13 и так до 20... А вообще я бы создал функцию и для чисел и для лет выводящую число на экран. И тогла осталось придумать как определять лет там или года выводить!
Константин Балуев
https://pastebin.com/kieRGxDB
Константин Балуев
Можно и интересней реализовать посредством массивов, но сейчас нет времени показать как...
Эльдар Rashidov
Благодарю.
Похожие вопросы
- Ребята подскажите как тут в коде считаются минуты? C#
- Подскажите как создать такой проэкт в виде сайта , как сейчас например в партнерских программах дается код банера вы раз
- Подскажите, как сделать автоматическое добавление текущей даты в ячейку в excel???
- Подскажите как удалить такой банер в нэте искал не помогает даже генераторы кодов
- ПОДСКАЖИТЕ ПОЖАЛУЙСТА код разблокировки баннера билайн
- Вопрос по С++ ,подскажите ошибку в коде.
- [SQL-Access] Как вычесть текущую запись поля из предыдущего?
- Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?
- Ассемблерная вставка в С .Странный код. Можете расшифровать?
- HTML, подскажите что не так с кодом