программа на с++
|
Новый участник Сообщения: 28 |
кто знает>> Помогите пожалуйста с написанием проги на с++
Программе №5 оформить задачу как функцию /* Подсчет количества дней между двумя датами */ /***************************************************************/ #include <stdio.h> //вспомогательный массив количества дней от начала до текущего //месяца int mes[12]={0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; main() { int d,m,g; //начальная дата (день, месяц, год) int d2,m2,g2; //конечная дата (день, месяц, год) int c; //подсчет количества дней между двумя датами c=mes[m-1]-d2+365*(g2-g1)+mes[m2-1]+d2; //учет високосности для начальной даты if(!g%4) if(m<3) c++; //учет високосности для конечной даты if(!g2%4) if(m>2) c++; //учет високосности для годов попавших в интервал //между двумя датами c=c+(g2-g)/4; printf("%d",c); } |
|
Отправлено: 11:48, 24-10-2006 |
Человек Сообщения: 3321
|
Профиль | Отправить PM | Цитировать Перенес из ХВЗ в Программирование
|
------- Отправлено: 13:11, 24-10-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать /* Ïîäñ÷åò êîëè÷åñòâà äíåé ìåæäó äâóìÿ äàòàìè */ #include <stdio.h> int compare(int d, int m,int g,int d2,int m2,int g2); int beginning(int day, int month, int year); int ending(int day, int month, int year); int days(int d,int d2); int mes[]={31,28,31,30,31,30,31,31,30,31,30,31}; void main() { int d=1,m=1,g=2004; //íà÷àëüíàÿ äàòà (äåíü, ìåñÿö, ãîä) int d2=31,m2=12,g2=2006; //êîíå÷íàÿ äàòà (äåíü, ìåñÿö, ãîä) int c; c=compare(d,m,g,d2,m2,g2); printf("%d\n",c); } int compare(int d, int m,int g,int d2,int m2,int g2){ int from,to,sum,year,dd,month; sum=0; if (g2>g) { from=beginning(d2,m2,g2);//îò íà÷àëà ãîäà to=ending(d,m,g); // äî êîíöà ãîäà sum=from+to; for (year=g+1;year<g2;year++) { if (year%4!=0){ sum=sum+365;} else { sum=sum+366;} } return sum; } else if (g2<g) { from=beginning(d,m,g);//îò íà÷àëà ãîäà to=ending(d2,m2,g2); // äî êîíöà ãîäà sum=from+to; for (year=g2+1;year<g;year++) {if (year%4!=0){ sum=sum+365;} else { sum=sum+366;} } return sum; } else if (g2==g){ if (g%4!=0){ mes[1]=28;} else { mes[1]=29;} if (m>m2){ for (month=m2+1;month<m;month++){ sum=sum+mes[month-1]; } sum=sum+mes[m2-1]-d2; sum=sum+d; return sum; } else if (m<m2){ for (month=m+1;month<m2;month++){ sum=sum+mes[month-1]; } sum=sum+mes[m-1]-d; sum=sum+d2; return sum; } else if (m==m2){ dd=days(d,d2); return dd; } } } int days(int d,int d2){ int sum; if (d2<d){ sum=d-d2;} else if(d2>d){ sum=d2-d;} else if (d2==d){ sum=0;} return sum; } /* if (g2<g){ ending(g);//îò íà÷àëà ãîäà beginning(g2);// äî êîíöà sum(); } if (g2==g) */ /* Ñëó÷àé 1: íà÷àëüíàÿ äàòà ìåíüøå êîíå÷íîé Òîãäà íàì íóæíî çíàòü, ñêîëüêî â 1 äàòå, äî êîíöà ãîäà è ñêîëüêî âî 2 äàòå îò íà÷àëà ãîäà*/ int beginning(int day, int month,int year){ int ms=0; if (year%4!=0){ mes[1]=28;} else { mes[1]=29;} if (month!=1){ for (int j=0; j<month-1;j++){ ms=ms+mes[j]; } ms=ms+day; } else { ms=day; } return ms; } int ending(int day, int month, int year){ int ms=0; if (year%4!=0){ mes[1]=28;} else { mes[1]=29;} if (month!=12){ for (int j=11; j>=month;j--){ ms=ms+mes[j]; } ms=ms+mes[j]-day; } else { ms=mes[11]-day; } return ms; } |
Последний раз редактировалось mrcnn, 24-10-2006 в 15:41. Отправлено: 14:17, 24-10-2006 | #3 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать После vbs опять начал путать == и =. Код отредактирован.
|
------- Отправлено: 15:42, 24-10-2006 | #4 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать а у gh6 и впрямь неплохая програмка. Почему-то я раньше никогда не догадывался месяцы то сложить.
|
|
Отправлено: 20:43, 24-10-2006 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - Программа NTScan. | BROTHERHOOD | Программное обеспечение Windows | 0 | 01-10-2009 20:00 | |
Нужна программа, определяющая, каким инсталлятором запакована программа | yaryar | Программное обеспечение Windows | 3 | 24-06-2008 10:56 | |
программа | Rustem | Вебмастеру | 7 | 07-05-2008 11:37 | |
DOS-программа и XP | Obolduy | Microsoft Windows 2000/XP | 4 | 15-04-2006 00:34 | |
Программа spawn | ivank | Программное обеспечение Linux и FreeBSD | 13 | 11-09-2003 18:25 |
|