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

Следующий день - C++

Восстановить пароль Регистрация
 
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
21.09.2013, 16:04     Следующий день #1
Given three natural numbers a, b, c which represent the day, month and year of some date. For example: 1, 4, 1991 represents 1st April 1991. Output three numbers which represent the following date.

Example:
Input:
1 4 1991

Output
2 4 1991
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 16:04     Следующий день
Посмотрите здесь:

[C++]На сколько дней студенту хватит стипендии S, если он тратит N р. в день и его расходы каждый день увеличиваются в X раз? C++
C++ Вводится k-й день невисокосного года - определить, является ли этот день рабочим.
C++ Выводим следующий день
C++ Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день
C++ Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увелич
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
21.09.2013, 17:29     Следующий день #2
что не получается?
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
21.09.2013, 19:45  [ТС]     Следующий день #3
был один вариант токо он не подходит, может есть другие варианты напишите плс

Добавлено через 1 минуту

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
#include <iostream>
#include <string>
#include <iomanip>
 
using namespace std;
 
int main() 
{
    string date="";
    int day=0;
    int month=0;
    int year=0;
    int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  cout << "ENTER DATE:\n";
    cin>>date;
    int flag=0;
    for(int i=0;i<date.length();++i)
    {
        switch (flag)
        {
            case 0:
                if (date[i]!='.')
                {
                    day=10*day+(static_cast<char>(date[i])-'0');
                }
                else 
                    flag++;
                break;
            case 1:
                if (date[i]!='.')
                {
                    month=10*month+(static_cast<char>(date[i])-'0');
                }
                else 
                    flag++;
                break;
            case 2:
                if (date[i]!='.')
                {
                    year=10*year+(static_cast<char>(date[i])-'0');
                }
                break;
        }
    }
    if (year%4==0 && year%100!=0 || year%400==0) days[1]++; 
    
    //вычисляем след. день
    if (++day>days[month-1]) 
    {
        day=1;
        if (++month>12) 
        {
            month=1;
            ++year;
        }
    }
  cout<<"TOMORROW IS:\n";
    cout<<setw(2)<<setfill('0')<<day<<"."<<setw(2)<<setfill('0')<<month<<"."<<year;
  cout<<"\n";
}
zer0mail
2176 / 1859 / 187
Регистрация: 03.07.2012
Сообщений: 6,615
Записей в блоге: 1
21.09.2013, 20:13     Следующий день #4
Неоформатированный текст неохота даже смотреть...
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
21.09.2013, 20:39  [ТС]     Следующий день #5
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
#include <iostream>
#include <string>
#include <iomanip>
 
using namespace std;
 
int main() 
{
string date="";
int day=0;
int month=0;
int year=0;
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cout << "ENTER DATE:\n";
cin>>date;
int flag=0;
for(int i=0;i<date.length();++i)
{
switch (flag)
{
case 0:
if (date[i]!='.')
{
day=10*day+(static_cast<char>(date[i])-'0');
}
else 
flag++;
break;
case 1:
if (date[i]!='.')
{
month=10*month+(static_cast<char>(date[i])-'0');
}
else 
flag++;
break;
case 2:
if (date[i]!='.')
{
year=10*year+(static_cast<char>(date[i])-'0');
}
break;
}
}
if (year%4==0 && year%100!=0 || year%400==0) days[1]++; 
 
//вычисляем след. день
if (++day>days[month-1]) 
{
day=1;
if (++month>12) 
{
month=1;
++year;
}
}
cout<<"TOMORROW IS:\n";
cout<<setw(2)<<setfill('0')<<day<<"."<<setw(2)<<setfill('0') <<month<<"."<<year;
cout<<"\n";
}
Добавлено через 48 секунд
Все исправил
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
21.09.2013, 21:21     Следующий день #6
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
#include <iostream>
#include <stdlib.h>
using namespace std;
 
class Date
{
private:
    int day, month, year;
 
public:
    Date(int d, int m, int y);
 
    void SetDay(int d);
    void SetMonth(int m);
    void SetYear(int y);
    void SetDate(int d, int m, int y);
 
    int GetDay() const;
    int GetMonth() const;
    int GetYear() const;
 
    void SetNextDate();
 
    friend ostream &operator<<(ostream &o, const Date &date);
};
 
ostream &operator<<(ostream &o, const Date &date)
{
    o << date.day << " " << date.month << " " << date.year;
    return o;
}
 
Date::Date(int d, int m, int y)
{
    SetYear(y);
    SetMonth(m);
    SetDay(d);
}
 
void Date::SetDay(int d)
{
    const int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
 
    if ((year%4==0 && year%100!=0) || (year%400==0))
    {
        if (month==2 && d<=29)  day=d;
        else                    day=(d<=days[month]) ? d : 1;;
    }
    else
    {
        day = (d<=days[month]) ? d : 1;
    }
}
 
void Date::SetMonth(int m)
{
    month = (m>=1 && m<=12) ? m : 1;
}
 
void Date::SetYear(int y)
{
    year = (y>=1800) ? y : 2000;
}
 
int Date::GetDay() const        { return day; }
int Date::GetMonth() const      { return month; }
int Date::GetYear() const       { return year; }
 
 
void Date::SetNextDate()
{
    const int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
 
    SetDay(day+1);
 
    if (day==1)             SetMonth(month+1);
    if (month==1 && day==1) SetYear(year+1);
}
 
 
int main()
{
    system("chcp 1251 > nul");
 
    int day, month, year;
 
    cout << "Enter DATE:\n";
    cin >> day >> month >> year;
 
    Date date(day, month, year);
    date.SetNextDate();
    cout << date << endl;
 
    system("pause");
    return 0;
}
Yandex
Объявления
21.09.2013, 21:21     Следующий день
Ответ Создать тему
Опции темы

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