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

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

Войти
Регистрация
Восстановить пароль
 
pj50
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 3
#1

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

16.06.2016, 11:10. Просмотров 187. Ответов 4
Метки нет (Все метки)

когда нажимаю печать на экран(пункт 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++):

На вход подается дата. Нужно вывести на экран, какая дата будет через 29 дней 12 часов и 44 минуты - C++
На входе заданы дата и время в формате «год, месяц, день, часы, минуты» (все числа даны через пробел). Год задан четырехзначным числом,...

Ввести две стрингов константы. Определить совпадение их компонент. - C++
Уважаемые кто что-либо знает в решении следующих задач (использование string.h) пишите пожалуйста, буду очень благодарен 1 задача ...

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты - C++
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.

Ввести с клавиатуры трехзначное число и определить, какая из его цифр больше. Составить блок-схему - C++
Составить блок-схему и программу на языке С++. Ввести с клавиатуры трехзначное число и определить: а) какая из его цифр больше. б)...

Две точки заданы своими координатами на плоскости.определить,какая из них находится ближе к началу координат - C++
две точки заданы своими координатами на плоскости.определить,какая из них находится ближе к началу координат.пж с коментами

Ввести элементы двумерного массива с клавы С++.Нужно вывести его на экран в виде таблицы, в конце каждой строки надо вывести самый большой элемент - C++
Вот мой код : #include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; using std::cout; using std::cin; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lawr
366 / 260 / 124
Регистрация: 09.05.2014
Сообщений: 769
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
366 / 260 / 124
Регистрация: 09.05.2014
Сообщений: 769
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 (( надо что то добавить в код?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2016, 09:32
Привет! Вот еще темы с ответами:

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры - C++
Задача на С++ (do..while) Нужно ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры? Буду...

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

Ввести 3 числа, вывести на экран в порядке убывания - C++
Пользователь должен ввести 3 числа,а на экран выводятся эти числа в порядке убывания.Как это сделать циклами?

Пользователь задает две даты в виде число, месяц, год. Комп определяет, какая дата более ранняя. Используя тип запись. - Pascal
Пользователь задает две даты в виде число, месяц, год. Комп определяет, какая дата более ранняя. Используя тип запись.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.06.2016, 09:32
Ответ Создать тему
Опции темы

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