Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 8

Описание через switch

21.10.2019, 21:03. Показов 1848. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С клавиатуры вводиться число от 10-59(возраст). Нужно вывести строчку - описание числа, причем описание должно быть согласовано с числом. Пример: "21 - двадцать один год", "40 - сорок лет" , "33 - тридцать три года". Написать нужно через switch case
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2019, 21:03
Ответы с готовыми решениями:

Как сделать описание через var, а не через type?
const N = 20; type item_t = string; type list_t = array of item_t; var a: list_t; c: integer; s: string; function...

через switch
Даны 2 числа определяющие невисокосный год, D(день) и M(месяц). Определите D и М следующего за этой датой.

Сделать через Switch
Написать программу, которая ждет ввода первой буквы названия месяца. В зависимости от этого определяет квартал. Учесть: Июнь, Июль – разные...

8
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,216
21.10.2019, 21:14
hugad, а в чем сложность? написать 50 раз case ?
0
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 8
21.10.2019, 22:02  [ТС]
Enifan, 50 раз кейс написать можно, а как то упростить, что бы кода меньше было. Можно?

Добавлено через 11 минут
Enifan, Это же получается так к каждому case еще и writeline нужно добавлять. Очень много строк выходит
0
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
21.10.2019, 22:30
Всё равно так или иначе придётся писать много текста.
Если ты хочешь чтобы выводилось: сколько лет при нажатии клавиши
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,216
21.10.2019, 22:33
Цитата Сообщение от hugad Посмотреть сообщение
к каждому case еще и writeline нужно добавлять
это как раз не обязательно

Добавлено через 1 минуту
насчет остального пока не уверен
если бы через if else можно было бы - тогда можно сократить запись, через switch case пока не нашел верного решения
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
21.10.2019, 22:40
Можно уменьшить количество работы.
Основной switch пускай работает с десятками лет (10, 20 и т.д.) - это 5 кейсов (+ default если возраст выходи за пределы)
Вспомогательный switch поместить в метод для возврата куска типа "лет"(0), "один год"(1), ... "девять лет"(9), что подразумевает 10 кейсов.
Получается 50 vc 15.
0
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 8
21.10.2019, 23:01  [ТС]
Enifan,
Цитата Сообщение от Enifan Посмотреть сообщение
это как раз не обязательно
ну как, если мне нужно для каждого числа вывести строчку, где это число словами написано будет

Добавлено через 15 минут
_katon_, Можешь, пожалуйста, это кодом написать? Пока что со слов вроде что то понял, но как записать это доехать не могу)
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,216
21.10.2019, 23:09
Лучший ответ Сообщение было отмечено hugad как решение

Решение

hugad, как то так, думаю можно что нибудь да улучшить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
 
namespace Years
{
    class Program
    {
        static void Main(string[] args)
        {
            do
            {
                Console.Write("Введите возраст: ");
                string str = Console.ReadLine();
                Console.WriteLine(PrintAge(Convert.ToInt32(str)) + "\n");
            } while (true);
        }
 
        static string PrintAge(int year)
        {
            switch(year)
            {
                case 11: return "одиннадцать лет";
                case 12: return "двенадцать лет";
                /* 13 - 18 */
                case 19: return "девятнадцать лет";
            }
 
            string newStr = "";
            switch (year - (year % 10))
            {
                case 20: newStr += "двадцать"; break;
                case 30: newStr += "тридцать"; break;
                case 40: newStr += "сорок"; break;
                case 50: newStr += "пятьдесят"; break;
            }
 
            newStr += " ";
            switch(year %= 10)
            {
                case 1: return newStr += "один год";
                case 2: return newStr += "два года";
                case 3: return newStr += "три года";
                case 4: return newStr += "четыре года";
                case 5: return newStr += "пять лет";
                case 6: return newStr += "шесть лет";
                case 7: return newStr += "семь лет";
                case 8: return newStr += "восемь лет";
                case 9: return newStr += "девять лет";
                case 0: return newStr += "лет";
            }
 
            return null;
        }
    }
}
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
21.10.2019, 23:11
hugad, запишите ифами чтобы понять логику, потом и свич получится (хотя не очень понимаю зачем он тут)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2019, 23:11
Помогаю со студенческими работами здесь

Сеть через Switch
Дома подключен интернет по технологии ETTH. Провод провайдера воткнут в свитч, оттуда другой провод в ноутбук (Виндовс 7). Туда подключали...

Radio через switch
Здравствуйте! Есть несколько input type radio <input type="radio" name="check_p" value="a"> <input type="radio"...

Через оператор switch в си
Фирма «Товары – почтой!» осуществляет доставку заказанных товаров по стране. Расстояние, на которое доставляются товары, находится в...

Переделать через switch
Вот уравнение: y = na+(n-1)a+...+a или по другому : ((n+1)/2*n*a) Вот мой код: И надо бы его переделать через switch; А я вот...

Меню через switch и case
Нужна помощь довести программу до ума, в конце программы в main сделать меню меню через switch и case: 1. Ввод строки 2. Ввод искомой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru