0 / 0 / 1
Регистрация: 23.03.2016
Сообщений: 40
1

Вывести на консоль знак Зодиака, соответствующий заданной дате

11.10.2016, 15:31. Показов 3387. Ответов 7
Метки нет (Все метки)

Даны два целых числа D (день) и M (месяц), определяющие правильную дату. Необходимо вывести знак Зодиака, соответствующий этой дате.
Соответствие знаков Зодиака числам:
водолей — «Aquarius» (20.01 — 18.02),
рыбы — «Pisces» (19.02 — 20.03),
овен — «Aries» (21.03 — 19.04),
телец — «Taurus» (20.04 — 20.05),
близнецы — «Gemini» (21.05 — 21.06),
рак — «Cancer» (22.06 — 22.07),
лев — «Leo» (23.07 — 22.08),
дева — «Virgo» (23.08 — 22.09),
весы — «Libra» (23.09 — 22.10),
скорпион — «Scorpio» (23.10 — 22.11),
стрелец — «Sagittarius» (23.11 — 21.12),
козерог — «Capricorn» (22.12 — 19.01).

Пример :
Ввод :
29 4
Вывод :
Taurus

(Как это можно сделать только через IF(Без For и т.д ?)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2016, 15:31
Ответы с готовыми решениями:

Вывести знак зодиака, соответствующий дате
Помогите пожалуйста сделать А.Даны два целых числа: D (день месяца) и M (номер месяца в году)....

Вывести знак Зодиака, соответствующий данной дате
Задания: 3) Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести...

Даны два целых числа: D (день месяца) и M (номер месяца в году). Вывести знак зодиака, соответствующий этой дате.
Помогите пожалуйста сделать не знаю даже с чего начать Даны два целых числа: D (день месяца) и M...

Вывести знак Зодиака, соответствующий дате
(Case) Даны два целых числа: D (день) и М (месяц), определяющие правильную дату. Вывести знак...

7
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
11.10.2016, 15:38 2
DoctorKto, лень делать, приведите дату только к дням, и сравнивайте промежутки допустим там если ваша дата между числами 124 - 154 это у нас рак(числа из головы) и тд.

Добавлено через 52 секунды
DoctorKto, и начинайте делать сами, помочь 1 раз если трудности это ок, но это не то место где учится должны за вас если не понятно идите читать книги
0
Эксперт С++
3219 / 1746 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
12.10.2016, 05:10 3
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
///////////////////////////////////////////////////////////////////////////////
//3.
///////////////////////////////////////////////////////////////////////////////
//Даны два целых числа D (день) и M (месяц), определяющие правильную дату.
//Необходимо вывести знак Зодиака, соответствующий этой дате.
//Соответствие знаков Зодиака числам:
//водолей     —   «Aquarius»      (20.01 — 18.02),
//рыбы        —   «Pisces»        (19.02 — 20.03),
//овен        —   «Aries»         (21.03 — 19.04),
 
//телец       —   «Taurus»        (20.04 — 20.05),
//близнецы    —   «Gemini»        (21.05 — 21.06),
//рак         —   «Cancer»        (22.06 — 22.07),
 
//лев         —   «Leo»           (23.07 — 22.08),
//дева        —   «Virgo»         (23.08 — 22.09),
//весы        —   «Libra»         (23.09 — 22.10),
 
//скорпион    —   «Scorpio»       (23.10 — 22.11),
//стрелец     —   «Sagittarius»   (23.11 — 21.12),
//козерог     —   «Capricorn»     (22.12 — 19.01).
 
//Пример :
//Ввод :
//29 4
//Вывод :
//Taurus
///////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <set>
#include <string>
#include <utility>
#include <vector>
///////////////////////////////////////////////////////////////////////////////
typedef std::string                                 T_str;
typedef int                                         T_month;
typedef int                                         T_day;
 
typedef std::pair       < T_month,      T_day   >   T_md_date;
typedef std::set        < T_md_date     >           T_md_dates;
typedef std::vector     < T_str         >           T_astr_sign_names;
///////////////////////////////////////////////////////////////////////////////
void    input_md_date( T_md_date    &   md_date )
{
    std::cout   <<  "Enter date:"
                <<  std::endl
                <<  "\tmonth\t: ";
 
    std::cin    >>  md_date.first;
 
    std::cout   <<  "\tday\t: ";
    std::cin    >>  md_date.second;
}
///////////////////////////////////////////////////////////////////////////////
T_str   get_astr_sign_name_of_md_date( T_md_date     const   &   md_date )
{
    static  const
    T_astr_sign_names   astr_sign_names
                            {
                                "Aquarius",
                                "Pisces",
                                "Aries",
 
                                "Taurus",
                                "Gemini",
                                "Cancer",
 
                                "Leo",
                                "Virgo",
                                "Libra",
 
                                "Scorpio",
                                "Sagittarius",
                                "Capricorn"
                            };
 
    static  const
    T_md_dates          start_md_dates_of_astr_sign
                            {
                                { 1,    20  },
                                { 2,    19  },
                                { 3,    21  },
 
                                { 4,    20  },
                                { 5,    21  },
                                { 6,    22  },
 
                                { 7,    23  },
                                { 8,    23  },
                                { 9,    23  },
 
                                { 10,   23  },
                                { 11,   23  },
                                { 12,   22  },
 
                                { 13,   0   }
                            };
 
    auto    month_of_astr_sign_end
        =   start_md_dates_of_astr_sign.upper_bound( md_date )->first;
 
    auto    month_of_astr_sign_begin    =   month_of_astr_sign_end  -   1;
 
    //Учитываем, что месяцы у нас отсчитываются с единицы, а имена знаков Зодиака -
    //с нуля.
    auto    astr_sign_ind   =       month_of_astr_sign_begin
                                +   astr_sign_names.size()
                                -   1;
 
    astr_sign_ind   %=  astr_sign_names.size();
 
    return  astr_sign_names[ astr_sign_ind ];
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        T_md_date   md_date;
        input_md_date( md_date );
 
        std::cout   <<  get_astr_sign_name_of_md_date( md_date )
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }//for
}
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
12.10.2016, 13:33 4
Mr.X, У Вас перепутаны месяц и день.
0
Эксперт С++
3219 / 1746 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
12.10.2016, 13:54 5
Цитата Сообщение от GbaLog- Посмотреть сообщение
Mr.X, У Вас перепутаны месяц и день.
Что значит перепутаны? Чтобы сравнивать даты в виде пар на меньше, нужно чтобы месяц первым стоял.
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
12.10.2016, 13:57 6
Цитата Сообщение от Mr.X Посмотреть сообщение
Что значит перепутаны?
Местами перепутаны.
В ТЗ написано:
//Пример :
//Ввод :
//29 4
//Вывод :
//Taurus
Цитата Сообщение от Mr.X Посмотреть сообщение
Чтобы сравнивать даты в виде пар на меньше, нужно чтобы месяц первым стоял.
Просто вот так поменять:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void    input_md_date( T_md_date    &   md_date )
{
    std::cout   <<  "Enter date:"
                <<  std::endl
                <<  "\tmonth\t: ";
 
    std::cin    >>  md_date.second;
 
    std::cout   <<  "\tday\t: ";
    std::cin    >>  md_date.first;
    
}
0
Эксперт С++
3219 / 1746 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
12.10.2016, 14:11 7
Цитата Сообщение от GbaLog- Посмотреть сообщение
В ТЗ написано:
А, вот вы о чем! Экий вы пунктуальный насчет ТЗ!
Я вначале планировал проверять дату на корректность, поэтому так поставил.






Цитата Сообщение от GbaLog- Посмотреть сообщение
Просто вот так поменять:
C++
1
2
3
4
5
6
7
8
9
void input_md_date( T_md_date & md_date )
{
 std::cout << "Enter date:"
 << std::endl
 << "\tmonth\t: ";
std::cin >> md_date.second;
std::cout << "\tday\t: ";
 std::cin >> md_date.first;
}
А тут уже у вас ошибка, так как
Цитата Сообщение от Mr.X Посмотреть сообщение
Чтобы сравнивать даты в виде пар на меньше, нужно чтобы месяц первым стоял.
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
12.10.2016, 14:16 8
Цитата Сообщение от Mr.X Посмотреть сообщение
А тут уже у вас ошибка, так как
Недосмотрел.
Что-то подумал о затратах замены мест,
и передумал быть таким настойчивым.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2016, 14:16
Помогаю со студенческими работами здесь

Вывести знак Зодиака, соответствующий дате
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака,...

Вывести знак Зодиака, соответствующий введенной дате
21. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака,...

Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака, соответствующий этой дате
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака,...

Вывести соответствующий знак зодиака
Пользователь вводит дату рождения в виде строки: день-месяц-год. Ваша задача вывести...


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

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

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