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

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

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

високосные отрицательные года - C++

21.10.2012, 15:41. Просмотров 362. Ответов 4
Метки нет (Все метки)

здравствуйте. у меня стоит задача, проверить образуют ли три введенные числа правильную дату (естественно год может быть отрицательным и високосным)
программа, которую я написал, работает для положительных годов, но вот с отрицательным и високосным для февраля проблема. я не понимаю за что можно зацепиться, какое условие написать.

вот как я делал (если год положительный): если
1) год делится на 4 на цело и не делится на 100, то год високосный
2) год делится на 4 и на 100 нацело, и не делится на 400, то год не високосный
3) год делится на 4 и на 100 нацело, и делится на 400, то год високосный
а как быть для отрицательных годов??? 0 года же ведь не было, и там сдвиг на 1, то есть -1,-5,-9 и так далее високосные.
помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 15:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос високосные отрицательные года (C++):

Депозитный калькулятор - как учитывать високосные года? - C++
Доброго времени суток! Хочу написать программу "Депозитный калькулятор". Вроде, всё сделал, но вышла проблема с высокосными годами. т.е....

Указать верное количество дней, приняв во внимание високосные года - C++
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя...

Нашел в схожей теме не могу понять в чем ошибка. Кроме того как конкретно сделать что были високосные года? - C++
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя...

Високосные годы - C++
Начал но как-то не могу закончить :( :wall: #include <stdio.h> int main() { int god; printf("vvedite god "); ...

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

Дано число года n. Найдите количество дней того года - C++
1) Даны три действительных числа x, y, z. Пусть программа выдаст мин и макс их значения. Сначала выведет минимум, потом максимум. 2) Даны...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.10.2012, 15:53 #2
Если говорить строго, то это правило нельзя распространять на даты до 4 октября 1598 года. А до 45 года до нашей эры вообще не было високосных годов.

Так что спрашивайте у того, кому эта программа нужна, что делать с этими календарями.
SSSprinter
0 / 0 / 0
Регистрация: 01.09.2011
Сообщений: 34
21.10.2012, 16:10  [ТС] #3
~OhMyGodSoLong~, ок, буду у препода спрашивать. просто я не понимаю какую там закономерность задать, кроме как то что -4, но этим не как не воспользоваться.
код свой не хочу скидывать, потому что эти задания из года в год повторяются.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.10.2012, 16:18 #4
Не, ну можно сделать просто и тупо:
C++
1
2
3
4
5
6
7
bool isLeap(int year)
{
    if (year < 0) {
        year = -year - 1;
    }
    // дальше обычная проверка year на високосность
}
Вопрос только в том, насколько это адекватно реальности. Григорианский календарь ведь действует только с той даты.
SSSprinter
0 / 0 / 0
Регистрация: 01.09.2011
Сообщений: 34
21.10.2012, 17:08  [ТС] #5
~OhMyGodSoLong~, кстати да, я и не знал что так можно. попробую потом. ну вот так вот препод сказал, что отрицательные года тоже нужны.

Добавлено через 31 минуту
~OhMyGodSoLong~,
только сдвиг наверно на -3 должен быть

Добавлено через 11 минут
на -3 сделал поправку на -3 заработало! вроде правильно все.
спасибо еще раз
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 17:08
Привет! Вот еще темы с ответами:

Заданы число и месяц невисокосного года. Вычислить порядковый номер даты, начиная отсчет с начала года - C++
Заданы два натуральных числа a,b которые обозначают число и месяц не високосного года. Вычислить порядковый номер даты, начиная отсчет с...

1 января не високосного года-понедельник. Вводится число и месяц этого года. Вывести день недели этого дня - C++
1 января не високосного года-понедельник. Вводится число и месяц этого года. Вывести день недели этого дня

года и месяцы - C++
В общем у меня в задаче говорится за какое время арендаторы смогут выкупит квартиру при определенном доходе . Я могу вывести это время...

Время года - C++
Здравствуйте! Помогите пожалуйста с решением: По номеру месяца определить его название и время года к которому он относится. Консольное...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.10.2012, 17:08
Ответ Создать тему
Опции темы

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