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

Ввести две даты, вывести на экран и определить, какая дата раньше - C++

Восстановить пароль Регистрация
 
pj50
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 3
16.06.2016, 11:10     Ввести две даты, вывести на экран и определить, какая дата раньше #1
когда нажимаю печать на экран(пункт 2), выводит 0, может не запоминает кода ввожу даты, помогите,пожалуйста, понять, что не правильно. dev c++
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
#include <stdio.h>
#include <conio.h>
#include <iostream>  
 #include <iomanip>
 #include <ostream>
 #include <cstdlib>
using namespace std;
 
//-------------структуры---------
struct data
{int day, month; int year;
};
data d1,d2;
 
//-------прототипы функций----------
int vvod(data d1, data d2);     // ввод даты
int print(data d1, data d2);    // печать даты
int earlier(data d1, data d2); // разница между датами
 
//---------осовная функция--------
 
int main ()
{
    char c;
    while (1)
   {
   system("cls");
   cout<<"1-enter the date"<<endl;
   cout<<"2-print of date"<<endl;
   cout<<"3-earlier"<<endl;
   
   cout<<"enter the number"<<endl;
   c=getchar();
   switch (c)
     {case '1':vvod (d1, d2);break;
      case '2': print(d1, d2);break;
      case '3':earlier(d1, d2);break;
      
     }
} getch();
}
//-----------ввод даты----------
int vvod(data d1, data d2) {
    while (1)
{
        
{cout<<"to escape enter '5' "<<endl;
cout<<"enter day, month, year";
cin>>d1.day;  //ввод дня
if (d1.day == 5) break;}
 
cin>>d1.month;  //ввод месяца
cin>>d1.year; //ввод года
 
cout<<"enter next date";
cin>>d2.day;  //ввод дня
if (d2.day == 5) break;
 
 
 
cin>>d2.month;  //ввод месяца
cin>>d2.year; //ввод года
 
getch ();
return 0;
}
}
//---------печать даты--------
int print(data d1, data d2) {
    
 
cout<<"Dates are:"<<endl;
cout<<d1.day<<"."<<d1.month<<"."<<d1.year<<endl;
cout<<d2.day<<"."<<d2.month<<"."<<d2.year<<endl;
getch();
}
 
//---------интервал------------
int earlier(data d1, data d2) {
if (d1.year<d2.year) 
    {cout<<"The first date is preceded by a second";
    }
if (d1.year>d2.year) 
    {cout<<"The second date is before the first ";
    }
else 
    {if (d1.month<d2.month)
          {cout<<"The first date is preceded by a second";
          } 
     if (d1.month>d2.month)
          {cout<<"The second date is before the first";
          }
        else
            {if (d1.day<d2.day)
                  {cout<<"The first date is preceded by a second";
                   }
             if (d1.day>d2.day)   
                     {cout<<"The second date is before the first";
                     } 
             else { cout<<"Dates are equally";
                  }        
              }  
    }
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2016, 11:10     Ввести две даты, вывести на экран и определить, какая дата раньше
Посмотрите здесь:

C++ Ввести две стрингов константы. Определить совпадение их компонент.
C++ Описать структуру TIMETABLE с рассписанием поездов. Вывести на экран информацию о поездах, дата отправления которых введена с клавиатуры.
C++ Две точки заданы своими координатами на плоскости.определить,какая из них находится ближе к началу координат
Ввести с клавиатуры трехзначное число и определить, какая из его цифр больше. Составить блок-схему C++
C++ Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lawr
 Аватар для lawr
352 / 246 / 121
Регистрация: 09.05.2014
Сообщений: 743
17.06.2016, 15:18     Ввести две даты, вывести на экран и определить, какая дата раньше #2
потому что переменные нужно передавать по ссылке а не по значению если хотите чтобы функция изменяла их значение. ПС- я вот не пойму почему прекращается ввод даты если день=5. по вашему, в месяце не бывает пятого числа? зато дата типа 32 13 1991 (тридцать второе мартабря надо полагать) вполне допустимы...
pj50
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 3
17.06.2016, 16:45  [ТС]     Ввести две даты, вывести на экран и определить, какая дата раньше #3
можете написать как это должно выглядеть, или на примере показать,
я пока хочу чтоб все заработало, а проверки на 31 день и 12 месяцев можно и потом дописать
lawr
 Аватар для lawr
352 / 246 / 121
Регистрация: 09.05.2014
Сообщений: 743
17.06.2016, 18:39     Ввести две даты, вывести на экран и определить, какая дата раньше #4
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
int vvod(data &d1, data &d2) {
    while (1)
{
        
{cout<<"to escape enter '5' "<<endl;
cout<<"enter day, month, year";
cin>>d1.day;  //ввод дня
if (d1.day == 5) break;}
 
cin>>d1.month;  //ввод месяца
cin>>d1.year; //ввод года
 
cout<<"enter next date";
cin>>d2.day;  //ввод дня
if (d2.day == 5) break;
 
 
 
cin>>d2.month;  //ввод месяца
cin>>d2.year; //ввод года
 
getch ();
return 0;
}
}
pj50
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 3
27.06.2016, 09:32  [ТС]     Ввести две даты, вывести на экран и определить, какая дата раньше #5
а теперь выскочила ошибка id returned 1 exit status (( надо что то добавить в код?
Yandex
Объявления
27.06.2016, 09:32     Ввести две даты, вывести на экран и определить, какая дата раньше
Ответ Создать тему
Опции темы

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