Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 9
1

Используя оператор switch напечатать название месяца для введённой даты

11.12.2016, 02:38. Показов 8038. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести произвольную дату как
символьную строку вида "25.10.2015"
Напечатать название месяца для введённой даты.
-------------------------------------------------------------
Не могу понять. Ведь Switch со строками не работает,а исключительно с константами...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2016, 02:38
Ответы с готовыми решениями:

Определить название месяца используя switch
С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты.

Вывести название месяца используя тернарный оператор
помогите решить задачу Пользователь вводит номер месяца. Вывести на экран его название....

Оператор выбора. Присвоить переменной название k-го месяца после месяца m
условие задачи: type месяц = (янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек); var m1, m:...

По введенному номера месяца напечатать название этого месяца
По введенному номера месяца напечатать название этого месяца. Например 5- май

7
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
11.12.2016, 10:44 2
Выдели сначала номер месяца из строки.
0
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 9
11.12.2016, 11:37  [ТС] 3
каким образом? через for? А толку? Это же все равно будет элемент строки.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
11.12.2016, 15:12 4
Преобразуй в число или анализируй посимвольно - для символов switch работает.
0
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 9
11.12.2016, 15:53  [ТС] 5
вот именно преобразовать в число я и не могу.
0
-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98
11.12.2016, 16:37 6
Компилятора под рукой нет, пишу с планшета, но я бы писал так: прошелся по строке по циклу, и после первой точки стал бы забивать в другую строчку символы до точки. После этого вызвал бы функцию atoi для полученной строчки и получил бы число. А потом бы в switch'е обработал бы это число. Это самый простой и понятный способ, есть другие более красивые, но лень описывать)
0
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 9
11.12.2016, 16:45  [ТС] 7
Вроде разобрался, но получилось не очень компактно.
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
#include<stdio.h>
int main(){
     char num1[100];
     printf("Enter first number: \n");
     gets(num1);
     switch(num1[3]){
                case '0':
                     switch(num1[4]){
                          case '1':
                                printf("Январь");
                          break;
                          case '2':
                                printf("Февраль");
                          break;
                          case '3':
                                printf("Март");
                          break;
                          case '4':
                                printf("Апрель");
                          break;
                          case '5':
                                printf("Май");
                          break;
                          case '6':
                                printf("Июнь");
                          break;
                          case '7':
                                printf("Июль");
                          break;
                          case '8':
                                printf("Август");
                          break;
                          case '9':
                                printf("Сентрябрь");
                          break;
                     }
                     break;
                     case '1':
                          switch(num1[4]){
                                case '0':
                                     printf("Октябрь");
                                break;
                                case '1':
                                     printf("Ноябрь");
                                break;
                                case '2':
                                     printf("Декабрь");
                                break;
                          }
                          break;
     }
return 0;
}
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
11.12.2016, 19:37 8
Цитата Сообщение от sairug Посмотреть сообщение
но получилось не очень компактно
Ты же сам хотел switch.
0
11.12.2016, 19:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2016, 19:37
Помогаю со студенческими работами здесь

Правильно напечатать фразу "Мне k лет" (используя оператор switch - case)
Для целого числа k от 1 до 99 напечатать фразу &quot;Мне k лет&quot;, учитывая при этом, что при некоторых...

С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты
С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты.

Вывести название месяца по введенной дате
Здравствуйте, В программу вводится строка, содержащее значение календарной даты в формате...

Для каждого числа в диапазоне от 30 до 70 вывести его название используя switch
Для каждого числа n в диапазоне от 30 до 70 вывести его название. Например, n=34, на экран...


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

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