Форум программистов, компьютерный форум CyberForum.ru

Вывести знак зодиака, соответствующий дате - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Кэтти
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 31
28.10.2012, 22:43     Вывести знак зодиака, соответствующий дате #1
Помогите пожалуйста сделать
А.Даны два целых числа: D (день месяца) и M (номер месяца в году). Вывести знак зодиака, соответствующий этой дате. В программе необходимо использовать условный оператор И оператор switch.

Справочник знаков зодиака:
21.03 - 20.04 - "Овен"
21.04 - 21.05 - "Телец"
22.05 - 21.06 - "Близнецы"
22.06 - 22.07 - "Рак"
23.07 - 23.08 - "Лев"
24.08 - 23.09 - "Дева"
24.09 - 23.10 - "Весы"
24.10 - 22.11 - "Скорпион"
23.11 - 21.12 - "Стрелец"
22.12 - 20.01 - "Козерог"
21.01 - 19.02 - "Водолей"
20.02 - 20.03 - "Рыбы"


В.В условиях части A данной задачи добавить ввод третьего числа Y - номера года (). При этом программе следует выводить на экран не только знак зодиака, соответствующий указанной дате, но и символ года по восточному календарю. Например, если введены числа:
31 07 1991
программа должна будет вывести:
Лев - Овца.
Справочник символов восточного календаря:
1984 - Крыса
1985 - Бык
1986 - Тигр
1987 - Кролик
1988 - Дракон
1989 - Змея
1990 - Лошадь
1991 - Овца
1992 - Обезьяна
1993 - Петух
1994 - Собака
1995 - Свинья
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 22:43     Вывести знак зодиака, соответствующий дате
Посмотрите здесь:

Описать структуру - знак зодиака C++
Вывести знак Зодиака, соответствующий данной дате C++
C++ По числу и месяцу вывести знак зодиака
Даны два целых числа: D (день месяца) и M (номер месяца в году). Вывести знак зодиака, соответствующий этой дате. C++
C++ Ввести с клавиатуры знак Зодиака. Найти в файле запись с таким знаком и вывести его
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
piande
3 / 3 / 0
Регистрация: 26.10.2012
Сообщений: 18
29.10.2012, 11:19     Вывести знак зодиака, соответствующий дате #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
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
#include <iostream>
#include <string>
 
using namespace std;
//
int part(long y)
{
    int i;
    i = y%12;
    return i; 
}
// ГўГµ: ãîäГ*
// âû: çîî
string KitaiZoo(long y)
{
    int i = part(y);
    switch (i)
    {
    case 1:
        return ("Овца");
    case 2:
        return ("ÑîáГ*ГЄГ*");
    case 3:
        return ("ÑâèГ*ГјГї");
    case 4:
        return ("ÊðûñГ*");
    case 5:
        return ("Áûê");
    case 6:
        return ("Г’ГЁГЈГ°");
    case 7:
        return ("Êðîëèê");
    case 8:
        return ("ÄðГ*ГЄГ®Г*");
    case 9:
        return ("Çìåÿ");
    case 10:
        return ("ËîøГ*äü");
    case 11:
        return ("ГЋГўГ¶Г*");
    case 12:
        return ("ÎáåçüÿГ*Г*");
    default:
        return ("????");
    }
}
 
main()
{
    cout<<"1984 "<<KitaiZoo(1984)<<endl;
    cout<<"1985 "<<KitaiZoo(1985)<<endl;
    cout<<"1986 "<<KitaiZoo(1986)<<endl;
    cout<<"1987 "<<KitaiZoo(1987)<<endl;
    cout<<"1988 "<<KitaiZoo(1988)<<endl;
    cout<<"1989 "<<KitaiZoo(1989)<<endl;
    cout<<"1990 "<<KitaiZoo(1990)<<endl;
    cout<<"1991 "<<KitaiZoo(1991)<<endl;
    cout<<"1992 "<<KitaiZoo(1992)<<endl;
    cout<<"1993 "<<KitaiZoo(1993)<<endl;
    cout<<"1994 "<<KitaiZoo(1994)<<endl;
    cout<<"1995 "<<KitaiZoo(1995)<<endl;
    cout<<"1996 "<<KitaiZoo(1996)<<endl;
    
    return 0;
}
Кэтти
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 31
29.10.2012, 15:13  [ТС]     Вывести знак зодиака, соответствующий дате #3
показывает ошибку "отсутствует спецификатор типа - предполагается int"
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
29.10.2012, 15:34     Вывести знак зодиака, соответствующий дате #4
C++
1
string KitaiZoo(long int y) попробуй
Добавлено через 6 минут
C++
1
int part(long int y)
Кэтти
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 31
29.10.2012, 15:49  [ТС]     Вывести знак зодиака, соответствующий дате #5
вроде все же правильно? но "отсутствует спецификатор типа - предполагается int." все равно выходит


#include <iostream>
#include <string>
using namespace std;
//
int part(long int y)
{
int i;
i = y%12;
return i;
}
// вх: года
// вы: зоо
string KitaiZoo(long int y)
{
int i = part(y);
switch (i)
{
case 1:
return ("Овца");
case 2:
return ("Собака");
case 3:
return ("Свинья");
case 4:
return ("Крыса");
case 5:
return ("Бык");
case 6:
return ("Тигр");
case 7:
return ("Кролик");
case 8:
return ("Дракон");
case 9:
return ("Змея");
case 10:
return ("Лошадь");
case 11:
return ("Овца");
case 12:
return ("Обезьяна");
default:
return ("????");
}
}
main()
{
cout<<"1984 "<<KitaiZoo(1984)<<endl;
cout<<"1985 "<<KitaiZoo(1985)<<endl;
cout<<"1986 "<<KitaiZoo(1986)<<endl;
cout<<"1987 "<<KitaiZoo(1987)<<endl;
cout<<"1988 "<<KitaiZoo(1988)<<endl;
cout<<"1989 "<<KitaiZoo(1989)<<endl;
cout<<"1990 "<<KitaiZoo(1990)<<endl;
cout<<"1991 "<<KitaiZoo(1991)<<endl;
cout<<"1992 "<<KitaiZoo(1992)<<endl;
cout<<"1993 "<<KitaiZoo(1993)<<endl;
cout<<"1994 "<<KitaiZoo(1994)<<endl;
cout<<"1995 "<<KitaiZoo(1995)<<endl;
cout<<"1996 "<<KitaiZoo(1996)<<endl;
return 0;
}
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
29.10.2012, 16:23     Вывести знак зодиака, соответствующий дате #6
перен майном инт забыли
C++
1
int main{
поставь и все заработает

Добавлено через 10 минут
C++
1
точнее int main(){
Добавлено через 17 минут
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
#include <iostream>
#include <string>
 
using namespace std;
//
int part(long y)
{
    int i;
    i = y%12;
    return i; 
}
// вх: года
// вы: зоо
string KitaiZoo(long y)
{
    int i = part(y);
    switch (i)
    {
    case 1:
        return ("Овца");
    case 2:
        return ("Собака");
    case 3:
        return ("Свинья");
    case 4:
        return ("Крыса");
    case 5:
        return ("Бык");
    case 6:
        return ("Тигр");
    case 7:
        return ("Кролик");
    case 8:
        return ("Дракон");
    case 9:
        return ("Змея");
    case 10:
        return ("Лошадь");
    case 11:
        return ("Овца");
    case 12:
        return ("Обезьяна");
    default:
        return ("????");
    }
}
 
int main(){
    cout<<"1984 "<<KitaiZoo(1984)<<endl;
    cout<<"1985 "<<KitaiZoo(1985)<<endl;
    cout<<"1986 "<<KitaiZoo(1986)<<endl;
    cout<<"1987 "<<KitaiZoo(1987)<<endl;
    cout<<"1988 "<<KitaiZoo(1988)<<endl;
    cout<<"1989 "<<KitaiZoo(1989)<<endl;
    cout<<"1990 "<<KitaiZoo(1990)<<endl;
    cout<<"1991 "<<KitaiZoo(1991)<<endl;
    cout<<"1992 "<<KitaiZoo(1992)<<endl;
    cout<<"1993 "<<KitaiZoo(1993)<<endl;
    cout<<"1994 "<<KitaiZoo(1994)<<endl;
    cout<<"1995 "<<KitaiZoo(1995)<<endl;
    cout<<"1996 "<<KitaiZoo(1996)<<endl;
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 19:04     Вывести знак зодиака, соответствующий дате
Еще ссылки по теме:

Вывести знак Зодиака, используя switch C++
C++ Определить знак зодиака по дате
C++ Программа выводит знак зодиака по введённой дате и месяцу

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

Или воспользуйтесь поиском по форуму:
piande
3 / 3 / 0
Регистрация: 26.10.2012
Сообщений: 18
29.10.2012, 19:04     Вывести знак зодиака, соответствующий дате #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
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
#include <iostream>
#include <string>
 
using namespace std;
//
int part(long y)
{
    int i;
    i = y%12;
    return i; 
}
// ГўГµ: ãîäГ*
// âû: çîî
string KitaiZoo(long y)
{
    int i = part(y);
    switch (i)
    {
    case 1:
        return ("1.ГЏГҐГІГіГµ");
    case 2:
        return ("2.ÑîáГ*ГЄГ*");
    case 3:
        return ("3 ÑâèГ*ГјГї");
    case 4:
        return ("4 ÊðûñГ*");
    case 5:
        return ("5 Áûê");
    case 6:
        return ("6 Г’ГЁГЈГ°");
    case 7:
        return ("7 Êðîëèê");
    case 8:
        return ("8 ÄðГ*ГЄГ®Г*");
    case 9:
        return ("9 Çìåÿ");
    case 10:
        return ("10ËîøГ*äü");
    case 11:
        return ("11ГЋГўГ¶Г*");
    case 12:
        return ("12ÎáåçüÿГ*Г*");
    default:
        return ("ГЉГІГ® ГІГ*Г¬?");
    }
}
 
bool IsLeapYear(int year)
{
    return ((year%400==0) || (year%4==0 && year%100!=0));
}
int GetDaysInMonth (int year, short month)
{
    switch (month) {
    case 2: return IsLeapYear(year) ? 29 : 28;
    case 4:
    case 6:
    case 9:
    case 11: return 30;
    default: return 31;
    }
}
int GetDaysInYear(int year, short month, short day)
{
    int days = day;
    for (int i=1; i<month; i++)
        days+= GetDaysInMonth(year, i);
    if (month == 1)
        days = day;
    return days;
}
// ГўГµ: ãîäГ*, ìåñÿöГ*, äåГ*Гј 
// ГўГ»: Г§Г*Г*ГЄ çîäèГ*ГЄГ*
string Zodiak(int year, short month, short day)
{
    int currDay = GetDaysInYear( year, month, day);
    if (GetDaysInYear(year,  1, 20) >= currDay || currDay >= GetDaysInYear(year, 12, 22)) return ("1.Êîçåðîã");
    if (GetDaysInYear(year,  1, 21) <= currDay && currDay <= GetDaysInYear(year,  2, 19)) return ("2.Âîäîëåé");
    if (GetDaysInYear(year,  2, 20) <= currDay && currDay <= GetDaysInYear(year,  3, 20)) return ("3.Ðûáû");
    if (GetDaysInYear(year,  3, 21) <= currDay && currDay <= GetDaysInYear(year,  4, 20)) return ("4.ГЋГўГҐГ*");
    if (GetDaysInYear(year,  4, 21) <= currDay && currDay <= GetDaysInYear(year,  5, 21)) return ("5.Òåëåö");
    if (GetDaysInYear(year,  5, 22) <= currDay && currDay <= GetDaysInYear(year,  6, 21)) return ("6.ÁëèçГ*åöû");
    if (GetDaysInYear(year,  6, 22) <= currDay && currDay <= GetDaysInYear(year,  7, 22)) return ("7.ГђГ*ГЄ");
    if (GetDaysInYear(year,  7, 23) <= currDay && currDay <= GetDaysInYear(year,  8, 23)) return ("8.Ëåâ");
    if (GetDaysInYear(year,  8, 24) <= currDay && currDay <= GetDaysInYear(year,  9, 23)) return ("9.ÄåâГ*");
    if (GetDaysInYear(year,  9, 24) <= currDay && currDay <= GetDaysInYear(year, 10, 23)) return ("10Âåñû");
    if (GetDaysInYear(year, 10, 24) <= currDay && currDay <= GetDaysInYear(year, 11, 22)) return ("11ÑêîðïèîГ*");
    if (GetDaysInYear(year, 11, 23) <= currDay && currDay <= GetDaysInYear(year, 12, 21)) return ("12Ñòðåëåö");
    return ("ГЉГІГ® ГІГ*Г¬?");
 
}
 
 
int main()
{
    cout<<"Input correct day, month & year"<<endl;
    int year, month, day;
    cout<<"Year: ";
    cin>>year;  // Г‚Г*ГЁГ¬Г*Г*ГЁГҐ > 0!
 
    do{
        cout<<"Month: ";
        cin>>month;
        if (month > 0 || month < 13) break;
        cout<<"ГЉГІГ® ГІГ*Г¬?"<<endl;
    } while (true);
 
    do{
        cout<<"Day: ";
        cin>>day;
        if (day > 0 || day <= GetDaysInMonth (year, month)) break;
        cout<<"ГЉГІГ® ГІГ*Г¬?"<<endl;
    } while (true);
 
    cout<<Zodiak( year, month, day)<<" "<<KitaiZoo(year)<<endl;
    
    return 0;
}
Yandex
Объявления
29.10.2012, 19:04     Вывести знак зодиака, соответствующий дате
Ответ Создать тему
Опции темы

Текущее время: 06:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru