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

Задачка на высокосный год - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан массив (codeblocks10.04) http://www.cyberforum.ru/cpp-beginners/thread616036.html
Дан массив из n целых чисел. До и после каждого числа, кратного 7, вставить число, равное 5. Не надо заводить ни каких вспомогательных массивов (в том числе и в своих функциях).есть ошибка которую...
C++ Найти сумму квадратов чисел. Сodeblocks 10.04 Найти сумму квадратов тех чисел a1, …, a100, которые не превосходят двух. Логика хромает. должно не превосходить двух, есть ошибка которую не могу исправить. помогите пожалуйста. #include... http://www.cyberforum.ru/cpp-beginners/thread616035.html
C++ Какой у меня уровень знания C++? Для специалистов
Опыта работы нет. Хочу написать резюме на стажера, но не знаю что написать про C++. Как мне кажется почти весь синтаксис C++ я знаю. Прочитал давно Дейтелов("Как программировать на C++") и...
вывести сумму от 0 до n которые не делятся на 2 с помощью while C++
Домашнее задание следующее "2. вывести сумму от 0 до n которые не делятся на 2 с помощью while .(n=5, ответ 1 3 5 9)" Вот что я написал, но компилятор показывает ошибки в 4 строке. #include...
C++ Просьба оценить код http://www.cyberforum.ru/cpp-beginners/thread615976.html
Данный код реализует массивы, размеры которых можно легко изменять, а так же которые можно легко склеивать. Прошу оценить его и покритиковать. template <typename T> class Element { public:...
C++ Составить ежедневные списки посещения медпункта Итак, задачка следующая - N сотрудников (известны фамилии) работают в две смены по индивидуальному графику (1-й день-"утро", 2-й день-"вечер", 3-й день-"выходной"). Все они в свое нерабочее время... подробнее

Показать сообщение отдельно
Менчендайзер
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 19

Задачка на высокосный год - C++

28.06.2012, 21:00. Просмотров 435. Ответов 2
Метки (Все метки)

Дана структура, задающая дату вида:
Struct date {int day;
int month;
int year;};
Пользуясь таким структурным типом, составить программу,
определяющую: дату, которая наcтупит через m дней;
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
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
char* Rus(const char* str);
char str_rus[256];
 
struct dat {int day;
             int month;
             int year;};
int main()
{  
dat date;
int d,y1;   
cout <<Rus(" Введите текущую дату!!! \n");
 
cout << Rus("\n ВВЕДИТЕ ГОД: ");
cin >> date.year;
 
cout<<Rus("\n ВВЕДИТЕ МЕСЯЦ: ");
cin>>date.month;
if (date.month>12) {cout<<Rus("\n НЕ ВЕРЕН МЕСЯЦ: "); return(1);}
 
cout << Rus("\n ВВЕДИТЕ ДЕНЬ МЕСЯЦА: ");
cin >> date.day;
if (date.day>31) {cout<<Rus("\n НЕ ВЕРЕН ДЕНЬ: "); return(1);}
 
cout << Rus("\n ВВЕДИТЕ ДНИ: ");
cin>>d;
 
d=d+date.day;
date.day=0;
 
if (d>=365)
{
y1 = floor((double)(d/365)); 
date.year=date.year+y1;
d=d-(y1*365);
}
 
while (d>28)
{
    if ( (date.month==12) && (d>31) ) 
    {date.month=1; date.year++; d=d-31;}
    
    if ((date.month==2)&&(d>28)) 
    {date.month++; d=d-28;}
    
    if (  ( (date.month==1)||(date.month==3)
        ||(date.month==5)||(date.month==7)||(date.month==8)||(date.month==10) ) &&(d>31))
    {date.month++; d=d-31;}
    
    if (  ( (date.month==4)||(date.month==6)||(date.month==9)||(date.month==11))&&(d>30)) 
    {date.month++; d=d-30;}
}
date.day=d;
cout<<Rus("\n получается ")<<date.day<<" . "<<date.month<<" . "<<date.year<<"\n";
 
return 0;}  
char* Rus(const char* str)
{ AnsiToOem(str, str_rus);
  return str_rus;}
Добавлено через 2 минуты
дело в том ,что когда я выставляю 28.02.2012 и кол-во дней 1 он пишет 1.03.2012, а должно 29.02.2012
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru