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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
ugosdaryn
2 / 2 / 1
Регистрация: 17.12.2009
Сообщений: 77
#1

Високосный год - C++

19.09.2010, 09:49. Просмотров 1637. Ответов 2
Метки нет (Все метки)

Даны три натуральных числа a, b, c представляющих день месяц и год. Для примера 1, 4, 1991 представляет 1-ое апреля 1991 года.
Вывести три числа, представляющие следующую дату.
Пример:
ввод:
1 4 1991
вывод:
2 4 1991
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2010, 09:49     Високосный год
Посмотрите здесь:

Вывод на экран монитора словами "День, Месяц, Високосный/Не високосный год" - C++
Добрый день Появилась такая вот краказябра Когда ввожу любое число для переменной d, вместо названия дня он постоянно выдает ошибку. Не...

високосный год - C++
Написать программу, в которой с клавиатуры вводятся два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года....

високосный год - C++
Год является високосными, если его номер кратен 4, однако из кратных 10 високоснымы является лишь кратные 400, например 1900-невисокосные...

Високосный год - C++
Трабл с кодом, ничего не могу понять. Посмотрите, пожалуйста. Вот, что выдает компилятор Line 7: error: multi-character character...

Определить, високосный ли год - C++
Помогите написать программу на языке си (разветвляющиеся алгоритмы) используя оператор варианта switch Условие задачи: По заданной дате...

Что такое високосный год? - C++
Всем привет! Я начинающий в программировании, а точнее первокурсник в университете IT. Вы проходим массивы в данный момент. И нам дали 25...

Не работает проверка на високосный год - C++
//--------------------------------------------------------------------------- #pragma hdrstop ...

Определить близжайший високосный год - C++
Определить ближайший високосный год, следующий за данным годом.

Проверить, високосный ли год, и вычислить сколько членов семьи родились в високосные годы - C++
Пожалуйста напишите код буду благодарна * Используя функцию year проверки ли год високосным, вычислить, сколько членов вашей семьи...

Для заданного числа N от 1 до 365, определить месяц и день недели в не високосный год. - C++
For a given number n from 1 to 365, determine the month and the day in non-leap year. Input: One number n (1<=n<=365). ...

По заданной дате вывести информацию о том, високосный ли год в этой дате, а также название месяца и количество дней в нем. - C++
Ребят, помогите пожалуйста, я только начала проходить программирование и еще не совсем разбираюсь По заданной дате вывести информацию о...

Написать программу, которая предлагает пользователю ввести год своего рождения и текущий год и в ответ показы - C++
Написать программу, которая предлагает пользователю ввести год своего рождения и текущий год и в ответ показывает возраст пользователя.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
19.09.2010, 10:51     Високосный год #2
Точно такое же задание: Получить тройку чисел, соответствующих следующему дню
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
19.09.2010, 10:53     Високосный год #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
/////////////////////////////////////////////////////////////////////////////////////
//  Даны три натуральных числа a, b, c представляющих день месяц и год. 
//  Для примера 1, 4, 1991 представляет 1-ое апреля 1991 года.
//  Вывести три числа, представляющие следующую дату.
//  Пример:
//  ввод:
//  1 4 1991
//  вывод:
//  2 4 1991 
/////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
 
void print_next_date(int day, int month, int year)
{
    const int START_YEAR = 1582;
    if(year <= START_YEAR)
    {
        std::cout << "Год должен быть > " 
                  << START_YEAR
                  << "."
                  << std::endl;
        return;
    }
    const int MIN_MONTH = 1;
    const int MAX_MONTH = 12;
    if(month < MIN_MONTH || MAX_MONTH < month)
    {
        std::cout << "Номер месяца должен принадлежать отрезку [" 
                  << MIN_MONTH
                  << ", "
                  << MAX_MONTH
                  << "]."
                  << std::endl;
        return;    
    }
 
    const int MIN_DAY = 1;
 
    if(day < MIN_DAY)
    {
        std::cout << "Число должно быть >= " 
                  << MIN_DAY
                  << "."
                  << std::endl;
        return;
    }
 
    const int MAX_DAY[] = {
                              31, 28, 31, 
                              30, 31, 30, 
                              31, 31, 30, 
                              31, 30, 31
                          };
 
    int the_max_day = MAX_DAY[month - 1];
 
    bool is_leap_year = year % 400 == 0
                        || year % 100 != 0
                           && year % 4 == 0;
 
    if(month == 2 && is_leap_year)
    {
        ++the_max_day;
    }
 
    if(the_max_day < day)
    {
        std::cout << "Число должно быть <= " 
                  << the_max_day
                  << "."
                  << std::endl;
        return;    
    }
 
    if(day < the_max_day)
    {
        std::cout << day + 1
                  << ' '
                  << month
                  << ' '
                  << year
                  << std::endl;
    }
    else if(month < MAX_MONTH)
    {
        std::cout << MIN_DAY
                  << ' '
                  << month + 1
                  << ' '
                  << year
                  << std::endl;    
    }
    else
    {
        std::cout << MIN_DAY
                  << ' '
                  << MIN_MONTH
                  << ' '
                  << year + 1
                  << std::endl;        
    }
}
 
int main()
{
    std::locale::global(std::locale(""));
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << "День:  ";
        int day;
        std::cin >> day;
 
        std::cout << "Месяц: ";
        int month;
        std::cin >> month;
 
        std::cout << "Год:   ";
        int year;
        std::cin >> year;    
 
        print_next_date(day, month, year);
    }    
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru