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

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

Войти
Регистрация
Восстановить пароль
 
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
#1

Вызов перегруженной функции не могу понять в чем дело? - C++

12.06.2013, 12:02. Просмотров 377. Ответов 2
Метки нет (Все метки)

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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <iostream>
#include <time.h>
#include <stdio.h>
using namespace std;
 
  //Прототипы функций
bool LeapYear(int Year);     //Определения высокосного года
int restart(char answer);    //Перезапуск программы
bool check(int Year,int Month, int Day); // Проверка на правильность и коректность вводимых данных
int find(int Year,int Month, int Day);  //Поиск дня недели
int between(int Day, int Month, int Year, int Day2, int Month2, int Year2);//Определение количество дней между введённой датой и текущей
 
  //Глобальные переменные
char answer;
int Day, Month, Year;
int Day2, Month2, Year2;
 
   //Главная функция
int main()
 { 
cout<<"Enter the number of day: "<<endl;
    cin>>Day;
cout<<"Enter the month: "<<endl;
    cin>>Month;
cout<<"Enter the year: "<<endl;
    cin>>Year; 
 
if(check(Year, Month, Day)==false){
    cout << "Error! Check your input."<<endl;
    cout<<endl<<endl;
        restart(answer);
                }
else {
find(Year, Month, Day);
between(Day, Month, Year, Day2, Month2, Year2);
restart(answer);
     }
return 0;
 }
 
 //Определяет высокосный года или нет
bool LeapYear(int Year) 
 {
     if(Year % 4 == 0 && Year % 100 != 0 || Year % 400 == 0) 
     return true;
     else
     return false;
 }
 
 //Перезапуск программы
int restart(char answer)
{
cout<<"Do you want to continue(y/n)?"<<endl;
    cin>>answer;
    if(answer=='y') {
        cout<<"\n\n==================== "<<endl;
         main();
                  }
    else {
    cout<<"==================== "<<endl;
    cout<<"Thank You for using my program"<<endl;
    return 0;
                  }
}
 
  //Проверка правильности и коректности ввода данных
bool check(int Year,int Month, int Day)
{
if (( Month==1 || Month==3 || Month==5 || Month==7 || Month==8 || Month==10 || Month==12) && (Day > 31)) 
            return false;           
            
if ((Month==4 || Month==6 || Month==9 || Month==11) && (Day > 30)) 
            return false;           
            
if (Month==2 & (!LeapYear(Year)) & (Day>29)) 
            return false;       
            
if (Month<1 || Month>12) 
            return false;
            
if(Year<1583||Year>9999) 
            return false;
            
else
return true;
}
 
  //Вычисление дня недели
int find(int Year,int Month, int Day)
{   
cout<<Day<<"|"<<Month<<"|"<<Year; 
int DayOfWeek;
    const char* NameDaysOfWeek[] = {
                "Sunday", "Monday", "Tuesday",
                "Wednesday", "Thursday", "Friday", "Saturday"
                };
 
  //Вычисление дня недели по формуле Зеллера
if (Month > 2) 
    Month -= 2; 
else 
    Month += 10, Year--;    
int Century = Year / 100;
    Year %= 100;
DayOfWeek = (Day + (13 * Month - 1) / 5 + Year + Year / 4 - Century * 2 + Century / 4) % 7; 
if (DayOfWeek < 0) 
    DayOfWeek += 7;
     
cout<<" is "<<NameDaysOfWeek[DayOfWeek]<<endl;  //Вывод на экран 
return 0;
}  
 
 // Определение количество дней между введённой датой и текущей
int between(int Day, int Month, int Year, int Day2, int Month2, int Year2)
{
int n1, n2;
struct tm *Date;
    time_t now;
    time( &now );
  
Date = localtime( &now );
cout<< "Current date is \n"<<asctime( Date )<<endl;
 
    Day2=Date->tm_mday;
    Month2=Date->tm_mon+1;
    Year2=Date->tm_year+1900;   
 
    if( Month>2 )
    {
        Month = Month+1;
    }
    else
    {
        Month = Month+13;
        Year = Year-1;
    }
    n1 = 36525*Year/100+306*Month/10+Day;
 
    if( Month2>2 )
    {
        Month2 = Month2+1;
    }
    else
    {
        Month2 = Month2+13;
        Year2 = Year2-1;
    }
    n2 = 36525*(Year2)/100+306*(Month2)/10+Day2;
 
if(n2>n1)
    cout<<"Date was "<<n2-n1<<" days ago"<<endl;
if(n2<n1)
    cout<<"Date will be "<<n1-n2<<" days"<<endl;
if(n2==n1)
    cout<<"Put today's date"<<endl<<endl;
return 0;
}
Вызов перегруженной функции fmod.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 12:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов перегруженной функции не могу понять в чем дело? (C++):

не могу понять в чем дело - C++
In file included from /usr/local/lib/gcc47/include/c++/csignal:44:0, from /home/dir/core.h:67: ...

Вывод строки. Не могу понять, в чем дело - C++
Добрый вечер. В программе на вход подается строка типа &quot;слово1-слово2&quot;, содержащаяся в переменной str. Я слово 1 помещаю в переменную...

Написанная программа не компилируется, не могу понять в чем дело - C++
Есть три файла в одном проекте: main.cpp cyber.cpp cyber.h //main.cpp: #include &lt;iostream&gt; #include...

Не могу понять в чем дело. Машинный код" завершилась с кодом 0 (0x0) - C++
#include &lt; iostream &gt; using namespace std; struct coord { int x, y; }; bool isValidCoord(int x) { return x&gt;=1 &amp;&amp; x&lt;=8; ...

Неоднозначный вызов перегруженной функции - C++
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры....

Неоднозначный вызов перегруженной функции - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;Windows.h&gt; #include &lt;iomanip&gt; #include...

2
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
12.06.2013, 12:17 #2
C++
1
2
3
4
5
6
7
int restart(char answer)
{
cout<<"Do you want to continue(y/n)?"<<endl;
    cin>>answer;
    if(answer=='y') {
        cout<<"\n\n==================== "<<endl;
         main();//<<<<< Что это?
1
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
12.06.2013, 12:23  [ТС] #3
Спасибо!!

Добавлено через 3 минуты
А еще не подскажете как сделать после того как нашло все после запроса желаете ли продолжить при нажатие да она прекращяет работу все равно?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 12:23
Привет! Вот еще темы с ответами:

Неоднозначый вызов перегруженной функции - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) { float...

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

pow: неоднозначный вызов перегруженной функции - C++
#include &lt;iostream&gt; using namespace std; int main() { int i; double res= {0},r; i=0;r=0; cout.setf(ios::fixed); ...

неоднозначный вызов перегруженной функции pow - C++
Ошибка 1 error C2668: pow: неоднозначный вызов перегруженной функции 2 IntelliSense: существует более одного экземпляра перегруженная...


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

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

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