0 / 0 / 0
Регистрация: 24.11.2021
Сообщений: 2
1
.NET 6

Просклонять слово "Час"

28.09.2022, 22:11. Показов 627. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мое задание: Просклонять слово "Час" в зависимости от введенного времени на часах. Например: 1 час; 2 часа; 5 часов...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2022, 22:11
Ответы с готовыми решениями:

Просклонять слово "Час"
Просклонять слово "Час" в зависимости от введенного времени на часах. Например: 1 час; 2 часа; 5...

Правильно просклонять слово программист до 1000
Разработать алгоритм позволяющий правильно просклонять слово программист до 1000

Организовать поиск по сайту PHP&MySQL. Как просклонять слово?
Пример: При запросе "медведь", пользователю надо выдать "медведи",...

1. На трех станках, производительность которых St1 м/час, St2 м /час и St3 м /час соответственно
господа прогдамисты еще 1 прозьба это уже лаба номер 2) если не сложно копи из делфи или хотябы...

Просклонять слово "юань" в зависимости от суммы
Не подскажете почему скрипт не работает?

9
428 / 240 / 142
Регистрация: 21.02.2011
Сообщений: 4,664
29.09.2022, 10:15 2
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
        static void Main(string[] args)
        {
            Console.WriteLine("h = ");
            string time = "";
            int h = int.Parse(Console.ReadLine());
            switch(h)
            { 
                case 0: time = h + " часов"; break;
                case 1: time = h + " час"; break;
                case 2: time = h + " часа"; break;
                case 3: time = h + " часа"; break;
                case 4: time = h + " часа"; break;
                case 5: time = h + " часов"; break;
                case 6: time = h + " часов"; break;
                case 7: time = h + " часов"; break;
                case 8: time = h + " часов"; break;
                case 9: time = h + " часов"; break;
                case 10: time = h + " часов"; break;
                case 11: time = h + " часов"; break;
                case 12: time = h + " часов"; break;
            }
            Console.WriteLine(time);
            Console.ReadLine();
        }
0
702 / 440 / 233
Регистрация: 03.01.2017
Сообщений: 1,256
29.09.2022, 10:34 3
C#
1
2
3
            int cnt = 24;
            var units = int.Parse(cnt.ToString()[cnt.ToString().Length - 1].ToString());
            string time = units == 1 ? "час" : units != 0 && units < 5 ? "часа" : "часов";
1
-45 / 2 / 2
Регистрация: 17.11.2021
Сообщений: 60
29.09.2022, 10:35 4
Лучший ответ Сообщение было отмечено l_Vlad_l как решение

Решение

andreyfreelans, Смысл проверять целое число int не легче конвертировать int в string и получить последний символ
и с помощью него просклонять час ?
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
string time = "";
string time1 = Console.ReadLine();
try
{
    int.Parse(time1);
}
catch
{
    Console.WriteLine("Не удалось конвертировать ваш ответ в int");
    Environment.Exit(1);
}
int h = int.Parse(Convert.ToString(time1.ToArray().Last()));
switch (h)
{
    case 0: time = time1 + " часов"; break;
    case 1: time = time1 + " час"; break;
    case 2: time = time1 + " часа"; break;
    case 3: time = time1 + " часа"; break;
    case 4: time = time1 + " часа"; break;
    case 5: time = time1 + " часов"; break;
    case 6: time = time1 + " часов"; break;
    case 7: time = time1 + " часов"; break;
    case 8: time = time1 + " часов"; break;
    case 9: time = time1 + " часов"; break;
}
Console.WriteLine(time);
Console.ReadLine();
1
702 / 440 / 233
Регистрация: 03.01.2017
Сообщений: 1,256
29.09.2022, 10:39 5
andreyfreelans, а зачем вы каждый case расписывали?
C#
1
2
3
4
5
6
7
8
9
Console.WriteLine("h = ");
            string time = "";
            int h = int.Parse(Console.ReadLine());
            switch (h)
            {
                case 1: time = h + " час"; break;
                case 2: case 3: case 4: time = h + " часа"; break;
                case 0: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: time = h + " часов"; break;
            }
Добавлено через 33 секунды
Цитата Сообщение от Lcvb x Посмотреть сообщение
получить последний символ
Lcvb x, смотрите выше, я так и сделал.

Добавлено через 58 секунд
Lcvb x, и вы тоже, зачем каждый case расписывали?
2
428 / 240 / 142
Регистрация: 21.02.2011
Сообщений: 4,664
29.09.2022, 11:02 6
была еще такая идея
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
namespace CyberForum
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("h = ");
            string time = "";
            int h = int.Parse(Console.ReadLine());
            if (h == 1)
              time = h + " час";
            else if (h > 1 && h < 5)
              time = h + " часа"; 
            else 
                time = h + " часов";
            Console.WriteLine(time);
            Console.ReadLine();
        }
    }
}
1
0 / 0 / 0
Регистрация: 24.11.2021
Сообщений: 2
29.09.2022, 12:36  [ТС] 7
Всем благодарен.
0
1514 / 905 / 328
Регистрация: 17.05.2015
Сообщений: 3,417
29.09.2022, 19:59 8
l_Vlad_l,
C#
1
2
            int hour = 1;
            Console.WriteLine(TimeSpan.FromHours(hour).Humanize());
https://github.com/Humanizr/Humanizer
0
1121 / 653 / 393
Регистрация: 28.01.2021
Сообщений: 1,336
30.09.2022, 17:30 9
Я тоже вопрос задам. iLinks, а зачем вы каждый case расписывали?)

C#
1
2
3
4
5
6
7
8
9
10
 Console.Write("h = ");
        int h = int.Parse(Console.ReadLine());
        string time = h switch
        {
             1 => "час",
             >= 1 and <= 4 => "часа",
             0 or >= 5 and <= 12 => "часов",
             _ => "Что ?"
        };
        Console.WriteLine(time);
0
702 / 440 / 233
Регистрация: 03.01.2017
Сообщений: 1,256
30.09.2022, 17:37 10
Цитата Сообщение от esperanto_qun Посмотреть сообщение
зачем вы каждый case расписывали
esperanto_qun, так изначально я вообще свич не использовал)
а далее предложили решение, где свич не возвращает значение (с использованием оператора case), потому и пришлось расписывать
0
30.09.2022, 17:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2022, 17:37
Помогаю со студенческими работами здесь

Просклонять слово "бочка" в зависимости от заданного N
сделать в паскале Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес –...

Просклонять слово "Рублей" в зависимости от суммы
Здравствуйте! Помогите, пожалуйста, решить задачку. Написать программу, которая после введенного с...

Правильно просклонять слово "корова"
Впервые решаю такую задачу,хотя бы идею дайте( По данному числу n закончите фразу &quot;На лугу...

Как вывести значение из таблицы за час до и за час после
Доброе утро, ребята! Подскажите, как можно написать такой запрос, мой вариант: select...

Формула: голда в час или xpoints в час
Добрый день. Подскажите как можно вычеслять прибыль голды в час в самой игре? Сам алгоритм...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru