Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
#1

Выводим следующий день - C++

21.03.2014, 17:37. Просмотров 424. Ответов 12
Метки нет (Все метки)

Нужна помощь...
Нужно, чтобы когда вводишь день, месяц, год - то день отображался следующий. А также, чтобы когда 31.12.2014 число отображалась - 1.1.2015.
Когда я введу 30 день, то он мне тупо скажет, что день 32.
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
main()
{
 int day,month,year;
 printf("День:"); scanf("%d",&day);
 printf("Месяц:"); scanf("%d",&month);
 printf("Год:"); scanf("%d",&year);
 int days=0;
 day++;
 if (day==30)
 {
  month++;
  if (month==1)
  {
   day=1;
   month=1;
   year++;
  }
  else
  {
  switch(month)
   {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    days+=31; break;
    case 2:
    {
     if (year%4==0)
     {
      days+=29;
     }
     else
     {
      days+=28; break;
     }
    }
    default:days+=30; break;
   }
  }
 days+=(day-1);
 }
 printf("Следующий день %d.%d.%d",day,month,year);
 getch();                    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2014, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выводим следующий день (C++):

Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день - C++
Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. В...

Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увелич - C++
Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. В...

Следующий день - C++
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...

Логические выражения - программа на следующий день просто перестала работать - C++
Помогите пожалуйста разобраться. Такая ситуация: вначале написал не полную программу( не все здания), откомпелировал, она работала. На...

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

Выводим двумерный массив! - C++
Здравствуйте! Какие есть способы чтобы вывести двумерный массив в С++? Например вот я ввожу массив с клавы без елементов которые...

12
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
21.03.2014, 18:18 #2
что-то вообще с логикой не то...
0
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
21.03.2014, 18:22  [ТС] #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
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
main()
{
 int day,month,year;
 printf("День:"); scanf("%d",&day);
 printf("Месяц:"); scanf("%d",&month);
 printf("Го:"); scanf("%d",&year);
 int days=0;
 day--;
 if (day==0)
 {
  month--;
  if (month==0)
  {
   day=31;
   month=12;
   year--;
  }
  else
  {
  switch(month)
   {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    days+=31; break;
    case 2:
    {
     if (year%4==0)
     {
      days+=29;
     }
     else
     {
      days+=28; break;
     }
    }
    default:days+=30; break;
   }
  }
 days+=(day-1);
 }
 printf("Предыдущий день %d.%d.%d",day,month,year);
 getch();                    
}
Переделывал я криво. Вот оригинал. Выводит предыдущий день.
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
21.03.2014, 18:41 #4
C++
1
2
3
day++;
if((month==1 || month==3...) && day==32) {day=0; month++;}
...
0
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
21.03.2014, 19:07  [ТС] #5
Не получается запустить. Либо я криво редактирую...
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
21.03.2014, 19:35 #6
кидай код, будем посмотреть...
0
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
21.03.2014, 20:50  [ТС] #7
Пошла...
C++
1
2
3
4
5
6
...
 day++;
 if((month==1 || month==3,5,4,7,8,10,11) && day==32)
 {day=1; month=1; year++;}
 else
...
Щас так...
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
21.03.2014, 20:57 #8
не-не
C++
1
2
3
4
if(...)
{ month++;
  if(month==13) year++;
}
Добавлено через 2 минуты
и дальше
C++
1
2
if(month==2 && day==29)...
if(month==4||month==6 && day==31) month++;
1
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
21.03.2014, 21:38  [ТС] #9
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
main()
{
 int day,month,year;
 printf("День: "); scanf("%d",&day);
 printf("Месяц: "); scanf("%d",&month);
 printf("Год: "); scanf("%d",&year);
 int days=0;
 day++;
 if ((month==1,3,5,7,8,10,12) && day==32)
 {
     month++; day=1;
 if (month==13) 
 {
        month=1; year++;
 }
 }
 if ((month==2) && day==29)
 {
     month++; day=1;
 }      
 if((month==4,6,9,11) && day==31)
 {
     month++; day=1;
 }
 days+=(day-1);
 printf("Следующий день %d.%d.%d",day,month,year);
 getch();                    
}
Тут получается не високосный год
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
21.03.2014, 21:41 #10
с первого взгляда - нормально..

есть проблемы?
0
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
21.03.2014, 21:53  [ТС] #11
Не, вроде нет.
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
21.03.2014, 21:55 #12
детальнее...
в чем бока?
0
b0nny
4 / 2 / 0
Регистрация: 11.11.2013
Сообщений: 347
21.03.2014, 21:57  [ТС] #13
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
main()
{
 int day,month,year;
 printf("ÄåГ*Гј: "); scanf("%d",&day);
 printf("ГЊГҐГ±ГїГ¶: "); scanf("%d",&month);
 printf("Ãîä: "); scanf("%d",&year);
 int days=0;
 day++;
 if ((month==1,3,5,7,8,10,12) && day==32)
 {
     month++; day=1;
 if (month==13) 
 {
        month=1; year++;
 }
 }
 if (year%4==0)
 {
        if ((month==2) && day==30)
        {
            month++; day=1;
      }
 }    
 else
 {
     if ((month==2) && day==29)
 {
     month++; day=1;
 }
 }
 if((month==4,6,9,11) && day==31)
 {
     month++; day=1;
 }
 days+=(day-1);
 printf("Ñëåäóþùèé äåГ*Гј %d.%d.%d",day,month,year);
 getch();                    
}
Сделал, чтобы февралю в не високосный день 28 было, а в високосный 29 дней.
0
21.03.2014, 21:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 21:57
Привет! Вот еще темы с ответами:

Выводим ПРОСТЫЕ числа. Ткните, пожалуйста, пальцем в ошибку - C++
Здравствуйте. Подскажите. что не так? Задача: Вывести на экран ПРОСТЫЕ ЧИСЛА в указанном диапазоне. Делала так: ...

Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС) - C++
генерируется мак адрес и выводится на экран. но вот только как то не корректно он выводится #include &lt;time.h&gt; #include &lt;stdio.h&gt; ...

увеличиваем число M в 2 раза и выводим текущее значение пока M<100 - C++
увеличиваем число M в 2 раза и выводим текущее значение пока M&lt;100 Помогите через цикл while полностью программу

Дана дата в формате день:месяц:год. Определить день недели - C++
Задание: Дана дата в формате день:месяц:год. Определить день недели.


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

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

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