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

Вечный календарь: неразбериха с проверкой введения даты - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Правильно ли настроена PATH? http://www.cyberforum.ru/cpp-beginners/thread876537.html
При компиляции выдает такую ошибку: "/d/Program_LN/C/CppApplication_1/"D:/MinGW/msys/1.0/bin/make.exe"" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf /bin/sh: /d/Program_LN/C/CppApplication_1/D:/MinGW/msys/1.0/bin/make.exe: No such file or directory make.exe": *** Error 127 СОБРАТЬ FAILED (значение выхода 2,, общее время: 1s) Я погуглил и выяснилось, что это из-за...
C++ Задача с кубиками Ребята, помогите решить задачку на зачет. Родители подарили Пети набор детских кубиков. Поскольку Петя пойдет в школу, они купили ему кубики с буквами. На каждой из шести граней каждого кубика написана буква. Теперь Петя хочет похвастаться перед старшей сестрой, что умеет читать. Для этого он хочет составить из кубиков ее имя. Но это оказалось довольно сложно сделать - ведь разные буквы могут... http://www.cyberforum.ru/cpp-beginners/thread876533.html
Эйлеров путь. Нужны комментарии кода C++
Имеется правильный код решения задачи по поиску Эйлерова пути. Прошу прокомментировать важные аспекты кода, то есть, что выполняет тот или иной цикл и т.п. Заранее благодарен! Условие: Задан неориентированный мультиграф из N вершин и M ребер. Требуется построить в нем эйлеров путь. Входные данные В первой строке через пробел записано два натуральных числа N и M (1 <= N <= 50, 1 <= M <=...
Возврат созданного в функции массива C++
Верна ли следующая конструкция? void LoadArray(float* array, int & count) { int fcount = 30;//данная цифра подсчитывается при открытии файла. count = fcount; array = new float; // дальше загрузка данных в массив.
C++ Проверьте задачку (написать функцию, которая возвращает индекс строки t к строке s, и "-1", если t в s не входит) http://www.cyberforum.ru/cpp-beginners/thread876500.html
Написать функцию, которая возвращает индекс строки t к строке s, и "-1", если t в s не входит. Вот код программы: int stroka(char *s,char *t) {int k=0, n=0; while (*t++==*s++) { n=k; } if(*t++!=*s++) n=-1;
C++ комментарии к программе(желательно построчно) #include <iostream> using namespace std; #include <iomanip> template <typename T> class Stack { private: T *stackPtr; int size; T top; подробнее

Показать сообщение отдельно
Iron Vlad
0 / 0 / 0
Регистрация: 23.05.2013
Сообщений: 6
23.05.2013, 23:46     Вечный календарь: неразбериха с проверкой введения даты
Ребята, вот кусок моего кода. Работает, но есть проблема с февралём до 12 года - вводишь 30 или 31 день, и программа думает, что так и надо. А с 12-го года всё норм. В вечный календарь вставлен григорианский - с 15 октября 1582 г. и юлианский - с 1 января (-45) года.
Помогите пожалуйста.
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
bool Proverka()//Функция проверки.
{
    if (d.day>31 || d.day<1 || d.month<1 || d.month>12 || d.year<-45 || d.year>1000000000)
    {
        cout<<endl;
        return false;
    }
    else
        if (d.year==0)
        {
            printf(Rus("Error: нулевого года не существует.\n"));
            return false;
        }
        else
            if (d.day==31 && (d.month==4 || d.month==6 || d.month== 9 || d.month==11))
            {
                printf(Rus("Error: в этом месяце 30 дней.\n"));
                return false;
            }
            else
                if (d.day>29 && d.month==2)
                {
                    printf(Rus("Error: в феврале не больше 29 дней.\n"));
                    return false;
                }
                else
                    if (d.year>=1582)
                        if (d.year==1582 && d.month==10 && d.day<15) 
                        {
                            printf(Rus("Error: в 1582 году не существовало дней с 5 по 14 октября включительно.\n"));
                            return false;
                        }
                        else 
                            if (d.day>28 && d.day<=31 && d.month==2 && d.year%4!=0)
                            {
                                printf(Rus("Error: в феврале 28 дней!! .\n"));
                                return false;
                            }
                            else 
                                if (d.day>28 && d.day<=31 && d.month==2 && d.year%4==0)
                                {
                                    if (d.year%400==0 && d.day!=29)
                                    {
                                        printf(Rus("Error: в феврале  29 дней!! .\n"));
                                        return false;
                                    }
                                    else
                                        if (d.year%100==0 && d.year%400!=0)
                                        {
                                            printf(Rus("Error: в феврале 28 дней!! .\n"));
                                            return false;
                                        }
                                }
                                else
                                return true;
                else
                    if (d.year<=1582 && d.month==10 && d.day>4)
                    {
                        printf(Rus("Error: в 1582 году не существовало дней с 5 по 14 октября включительно.\n"));
                        return false;
                    }
                    else 
                        if (d.year<=1582 && d.month==10 && d.day<=4)
                            if (d.year>0)
                            {
                                if (d.day>28 && d.day<=31 && d.month==2 && d.year%4==0)
                                    if (d.day>29)
                                    {
                                        printf(Rus("Error: в феврале 29 дней!! .\n"));
                                        return false;
                                    }
                                    else
                                        if (d.month==2 && d.day>28)
                                        {
                                            printf(Rus("Error: в феврале 28 дней!! .\n"));
                                            return false;
                                        }
                                        else return true;
                            }
                            else
                                if (d.year<0)
                                    if (d.day>28 && d.day<=31 && d.month==2 && (d.year%4)+1==0)
                                        if (d.day>29)
                                        {
                                            printf(Rus("Error: в феврале 29 дней!! .\n"));
                                            return false;
                                        }
                                        else 
                                            if (d.month==2 && d.day>28)
                                            {
                                                printf(Rus("Error: в феврале 28 дней!! .\n"));
                                                return false;
                                            }
                                            else return true;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru