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

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

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

подскажите с кодом - C++

30.12.2009, 10:11. Просмотров 378. Ответов 7
Метки нет (Все метки)

Всем привет!!!У меня вопрос вот задание
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
int Month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int a1,b1,c1,a2,b2,c2, temp, i;
cout<<"a1= ";
cin>>a1;
cout<<"b1= ";
cin>>b1;
cout<<"c1= ";
cin>>c1;
cout<<"a2= ";
cin>>a2;
cout<<"b2= ";
cin>>b2;
cout<<"c2= ";
cin>>c2;
if ((c1%4 == 0) && !(( c1%400 != 0) && (c1%100 == 0)))
{
    Month[1]++;
 
}  
 
 
if  
   ((c2%4 == 0) && !(( c2%400 != 0) && (c2%100 == 0)))
{
    Month[1]++;
}
 
 
 
 
temp=(c2-c1)*365;
if(b2<b1)
{
temp-=365;
for(i=b1-1; i<12; i++)
temp+=Month[i];
for(i=0; i<b2-1; i++)
temp+=Month[i];
}
else
{
        for(i=b1-1; i<b2-1; i++)
                temp+=Month[i];
}
if(a2<a1)
{
temp-=(a1-a2);
}
else
temp+=a2-a1;
 
cout<<"Col dney= "<<temp<<endl;
_getch();
return 0; 
}
вот код но мне кажется не правильно вот задание ! Даны натуральные числа a1,b1,c1,a2,b2,c2, которые указывают две даты (число, месяц, год). Вычислить количество дней, прошедших между двумя этими датами но еще надо учесть , что При решении задач этого раздела принять во внимание, что в современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех номеров, которые делятся на 100 и не делятся на 400.
Прошу помогите исправьте чо не правилно!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2009, 10:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос подскажите с кодом (C++):

подскажите пожалуйста с кодом - C++
как удалить из двумерного массива столбец с заданным номером?

Подскажите что не так с кодом? - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; int main() { int matrix; int A={0,1,2,3,4}; int n=5; for(int j=0; j&lt;n;...

Подскажите,пожалуйста ,что не так с кодом! - C++
Не могу понять,что с кодом.Если не сложно,то прокомментируйте пожалуйста #include &lt;stdio.h&gt; #include &lt;string.h&gt; #define ...

Подскажите с кодом перевода числа в восьмеричную сисему - C++
Нужно разработать функцию перевода числа в восьмеричную систему. Причем с сылкой на функцию. Помогите пожалуйста оформить с ссылкой на...

подскажите что с кодом не так? (просуммировать два раза по два столбца, функция) - C++
Нужно создать функцию для суммирования двух столбцов и просуммировать два раза по два столбца. Сам массив задала, а функция работает не...

Непонятки с кодом. - C++
Ребят, набрал код из книги - Аммерааль Леен STL для программистов на C++.djvu #include &lt;iostream&gt; #include &lt;vector&gt; int main() {...

7
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
30.12.2009, 10:17 #2
Цитата Сообщение от zloyprogramist Посмотреть сообщение
вот код но мне кажется не правильно
А запустить и проверить сложно?
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.12.2009, 10:54 #3
Вот так попробуйте:
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
int Month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int a1,b1,c1,a2,b2,c2, temp, i;
cout<<"a1= ";
cin>>a1;
cout<<"b1= ";
cin>>b1;
cout<<"c1= ";
cin>>c1;
cout<<"a2= ";
cin>>a2;
cout<<"b2= ";
cin>>b2;
cout<<"c2= ";
cin>>c2;
 
temp=(c2-c1)*365;
if(b2<b1)
{
temp-=365;
for(i=b1-1; i<12; i++)
temp+=Month[i];
for(i=0; i<b2-1; i++)
temp+=Month[i];
}
else
{
        for(i=b1-1; i<b2-1; i++)
                temp+=Month[i];
}
if(a2<a1)
{
temp-=(a1-a2);
}
else
temp+=a2-a1;
 
// ñäåëГ*ГҐГ¬ òóïîé ïåðåáîð
for(i=c1; i<=c2; i++)
if ((i%4 == 0) && !(( i%400 != 0) && (i%100 == 0)))
temp++;
if ((c1%4 == 0) && !(( c1%400 != 0) && (c1%100 == 0)) && b1>2)
temp--;
if ((c2%4 == 0) && !(( c2%400 != 0) && (c2%100 == 0)) && b2<3)
temp--;
 
cout<<"Col dney= "<<temp<<endl;
_getch();
return 0; 
}
0
firefox1913
27 / 27 / 2
Регистрация: 01.07.2009
Сообщений: 58
30.12.2009, 12:59 #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <locale>
 
using namespace std;
 
struct Date
{
  int days;
  int month;
  int year;
};
int main()
{
 
    setlocale(LC_ALL,"Rus");
    Date D1,D2;
 
    cout<<"Введите 1ю дату "; cin>>D1.days >>D1.month >>D1.year;
    cout<<"Введите 2ю дату "; cin>>D2.days >>D2.month >>D2.year;
 
    int mas_days[] = {31,28,31,30,31,30,31,31,30,31,30,31},i,d,k;
    int count = 0;
    d = D1.month - 1;
    int t = D1.days;
 
    for(int j = D1.year;   j < D2.year;   j++)
    {
       if(j % 4 == 0 && j % 100 != 0 && j % 400 != 0)
           mas_days[1] = 29;
       else
           mas_days[1] = 28;
 
       for(i = d;   i < 12;  i++)
       {
           for(k=t;   k <=mas_days[i];  k++)
           {
               if(D2.days == k && D2.month==i+1 && D2.year==j) break;
               else count++;
           }
           t=1;
           d = 0;
       }
    }
    cout<<"Количество дней "<< count << endl;
 
return 0;
}
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.12.2009, 13:11 #5
firefox1913, Я код не проверял Ваш, но так на вскидку:
Если обе даты в одном году , то count останется равным 0?
Ведь весь цикл:
C++
1
 for(int j = D1.year;   j < D2.year;   j++)
ни разу не выполнится.
1
firefox1913
27 / 27 / 2
Регистрация: 01.07.2009
Сообщений: 58
30.12.2009, 14:00 #6
valeriikozlov спасибо щас буду испровлять

Добавлено через 30 минут
Вот исправленый код
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
 #include <iostream>
#include <locale>
 
using namespace std;
 
struct Date
{
  int days;
  int month;
  int year;
};
int main()
{
 
    setlocale(LC_ALL,"Rus");
    Date D1,D2;
 
    cout<<"Введите 1ю дату "; cin>>D1.days >>D1.month >>D1.year;
    cout<<"Введите 2ю дату "; cin>>D2.days >>D2.month >>D2.year;
 
    int mas_days[] = {31,28,31,30,31,30,31,31,30,31,30,31},i,d,k;
    int count = 0;
    d = D1.month - 1;
    int t = D1.days;
 
    bool F = true;
   
    for(int j = D1.year;  j <= D2.year;  j++)
    {
       if(j % 4 == 0 && j % 100 != 0 && j % 400 != 0)
           mas_days[1] = 29;
       else
           mas_days[1] = 28;
 
         for(i = d;   i < 12 ;  i++)
         {
           for(k=t;   k <=mas_days[i];  k++)
           {
               if(D2.days == k && D2.month==i+1 && D2.year==j)
               {
                   F = false;
                   break;
               }
               else count++;
           }
           if(!F)break;
           t=1;
         }   
         d = 0;
     }
    cout<<"Количество дней "<< count << endl;
 
return 0;
}
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.12.2009, 14:11 #7
firefox1913, Еще одна вещь смущает (по-моему последняя):
По условию високосными не будут года: 100, 200, 300, но 400 будет високосным.
По-моему
Цитата Сообщение от firefox1913 Посмотреть сообщение
if(j % 4 == 0 && j % 100 != 0 && j % 400 != 0)
не совсем верно отражает это условие. 400 год (и все кратные 400) программа засчитает не високосным.
0
firefox1913
27 / 27 / 2
Регистрация: 01.07.2009
Сообщений: 58
30.12.2009, 14:32 #8
Малесь не обратил внимание на условие
0
30.12.2009, 14:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2009, 14:32
Привет! Вот еще темы с ответами:

C++ что-то не то с кодом - C++
Помогите пожалуйста.Задание легкое но у меня что-то не работает. #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int...

Помогите с кодом - C++
Всем доброго времени суток. Вот задали написать прогу для сравнения 3-х чисел введённых с клавиатуры, вроде всё нормально, только...

Проблемы с кодом - C++
Не компилируется код, пишет ошибки, причем очень много, пожалуйста, посмотрите, что тут нужно исправить если нужны коды ошибок, я...

Проблемма с кодом - C++
Помогите пожалуйста,если кто знает, нужно перевести этот код на С++. procedure OGI(R,S,M,N:integer;Var A:matrix); {R,S –...


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

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

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