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

Подсчет дней между датами, преждевременный выход из цикла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть в Visual Studio 2013 что-то типа builder c++ 6 http://www.cyberforum.ru/cpp-beginners/thread1114523.html
Есть в Visual Studio 2013 что-то типа builder c++ 6 и стоит его учит или есть какие-то более популярен компилятьр за builder c++ 6
C++ Как настроить пользовательские правила построения в Visual Studio ? Извиняюсь за повторное создание темы. Просто в этом разделе намного больше онлайн, в отличии от того где вообще никого. И выше шанс, что мне ответят, поскольку тут много людей, умеющих пользоваться Visual Studio. Помогите настроить пользовательское правило построения для Visual Studio 2008(можно и для 2010\2012 это не сильно существенно). Ситуация следующая: 1) Есть сторонний компилятор, все... http://www.cyberforum.ru/cpp-beginners/thread1114517.html
C++ Удаления узла из бинарного дерева поиска
Уже довольно много времени убил на эту задачу, теорию понимаю, на практике реализовать никак не получается. Помогите пожалуйста написать эту функцию которая подойдет под мой код: #include <iostream> using namespace std; struct node { int key, value; }; //------------------------------------------------------ struct tree
C++ Builder Алгоритм поиска (искомый элемент не находится)
Здравствуйте.Столкнулся с такой проблемой,не находит искомый элемент,в чем ошибка ? int m,x,i_key=0,j_key=n-1; x=StrToInt(Edit2->Text); while(i_key< j_key) { m = (i_key+ j_key)/2; if (a < x) i_key= m+1; else j_key = m; } if (a!=x)
C++ Боуер Мур. поиск подстроки http://www.cyberforum.ru/cpp-beginners/thread1114495.html
Написал код, но он некорректно ищет подстроку. В зависимости где находится искомый элемент в тексте. Может вы найдете ошибку? #include <iostream> #include <fstream> #include <string> #include <conio.h> using namespace std; void search(char*text, char*find, int n2, int n1)
C++ Конструкторы базового и производного класса class first { public: first(int a):first(a){} void Setfirst(int a){first=a;} int Getfirst(){return first;} private: int first; }; подробнее

Показать сообщение отдельно
Александр_Алекс
4 / 1 / 1
Регистрация: 08.12.2013
Сообщений: 136
09.03.2014, 13:08     Подсчет дней между датами, преждевременный выход из цикла
Здравствуйте! Делаю программу на С++ для подсчета дней между двумя датами, цикл завершается после первой итерации, условие выхода из цикла не соблюдается.
Вот код:

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
// Test_Number_of_days.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int dayCur,monthCur,yearCur; //Peremennue dlya hraneniya tekuwei datu       
    int dayF,monthF,yearF; //Peremennue dlya hraneniya datu mezhdy kotori nyzhno naiti kol-vo dnei
    int numberDays; //Peremennaya dlya hraneniya kol-va dnei
 
    numberDays=0; //nachalnoe znachenie schetchika dnei
 
    dayF=5;
    monthF=4;
    yearF=2014;
 
    dayCur=3;
    monthCur=3;
    yearCur=2014;
 
 
do 
{
 
        if(monthCur==1 || monthCur==3 || monthCur==5 || monthCur==7 || monthCur==8 || monthCur==10 || monthCur==12)//esli v tek. mesyace 31 den'
        {
            do
            {
                cout<<"-";
                numberDays++;
                dayCur++;
 
                if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Esli cikl schitaet dni v poslednem mesyace
            }
            while(dayCur!=31);
        }
        if(monthCur==4 || monthCur==6 || monthCur==9 || monthCur==11) //esli v tek. mesyace 30 dnei
        {
            do
            {
                cout<<"+";
                numberDays++;
                dayCur++;
 
                if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Esli cikl schitaet dni v poslednem mesyace
            }
            while(dayCur != 30);
        }
        
        if(monthCur ==2 ) //esli fevral'
            do
            {
                cout<<"=";
                numberDays++;
                dayCur++;
                if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Esli cikl schitaet dni v poslednem mesyace
            }
            while(dayCur !=28);
 
        if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Vuhod iz osnovnogo cikla
        
        monthCur++; //Sledyjushii mesyac
        dayCur=1; //pervui den'
 
        if(monthCur > 12) // Slesdyushii god
        {
            cout<<"*";
            monthCur=1;
            dayCur=1;
            yearCur++;
        }
    
}
while(dayCur!=dayF && monthCur!=monthF && yearCur != yearF);
 
    cout<<"Kol-vo dney "<< numberDays;
 
 
    /*cout<<"Vvod goda: ";
     cin>>yearCur;
 
    cout<<"Vvod mesyaca: ";
     cin>>monthCur;
    
    cout<<"Vvod dnya: ";
     cin>>dayCur;*/
 
    system("pause");
    return 0;
}
Как видно из кода, условие цикла таково
C++
1
while(dayCur!=dayF && monthCur!=monthF && yearCur != yearF)
но выход из цикла происходит при таких значения переменных(см. вложения). Надеюсь, все свои действия я понятно описал в комментариях.
Заранее спасибо за помощь!
Миниатюры
Подсчет дней между датами, преждевременный выход из цикла  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru