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

Cчетчик дней с рождения Христа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ игра (с++) http://www.cyberforum.ru/cpp-beginners/thread201406.html
Здравствуйте! Нужно составить игру про шарики. Если в линии встречаются 3 или больше одинаковых цветов шарико, то нужно этот ряд шаров удалить. Задача состоит в том что бы посчитать сколько шариков удалилось. Цвета шариков это номера от 1 до 9. Тест такой: ввод1: 5 1 3 3 3 2 вывод1: 3 ввод2: 10
C++ Числовой массив Задан числовой массив, состоящий из n элементов (n<=100). Определить есть ли среди последних 5 элементов только один четный положительный. http://www.cyberforum.ru/cpp-beginners/thread201399.html
Количество дней от одной даты до другой C++
Здравствуйте. Подскажите пожалуйста как найти количество дней от одной даты до другой?
C++ Учебники С++ для начинающего программиста
Здравствуйте,подскажите где можно скачать Учебники С++ для начинающего программиста,где всё достоверно написано что да как делать?
C++ Шаблоны функции http://www.cyberforum.ru/cpp-beginners/thread201374.html
Помогите решить срочняк:umnik: S=(exp(y)*exp(x))+sqrt(x)
C++ Одномерный массив! Найти максимальный элемент с реди положительных одномерного масива и минимальный среди отрицательных чисел. к примеру будет: Чисел 10 будет в программе!!! подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
02.12.2010, 15:34     Cчетчик дней с рождения Христа
Цитата Сообщение от jambas92 Посмотреть сообщение
код работает хуже чем предыдущии....
ЭЭ, предыдущий не плохо работал, просто считал не точно)))

Давайте разбираться, мне самому уже интересно. Что не так? Считает не правильно? Или что?

Добавлено через 10 минут
Да, всязи с изменившимя условием, вот эти строчки неправильные:
C++
1
2
3
4
if((month-1)%2)
                days+=(month-1)/2+1;
        else
                days+=(month-1)/2;
надо переделать...

Добавлено через 27 минут
А теперь:
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
#include<iostream>
using std::string;
using std::cout;
using std::cin;
using std::endl;
int month_to_days(int,int);
int leap_years(int y);
int main(){
        int day,month,year,days;
        string Date;
        cout<<"Enter date (day/month/year) : ";
        getline(cin,Date);
        day=(Date.at(0)-'0')*10+Date.at(1)-'0';
        month=(Date.at(2)-'0')*10+Date.at(3)-'0';
        year=(Date.at(4)-'0')*1000+(Date.at(5)-'0')*100+(Date.at(6)-'0')*10+Date.at(7)-'0';
        days=(year-1)*365+leap_years(year);
        days+=month_to_days(month-1,year);
        days+=day;
        if(year%4==0&&year%100!=0||year%400==0){
                if(month>=2)
                        days-=1;
                }
        else if(month>=2)
                        days-=2;
        cout<<"Number days "<<days<<endl;
        cin.get();
        return 0;
}
int leap_years(int y){
        int ly=0;
        for(int i=1;i<y;i++)
                if(i%4==0&&i%100!=0||i%400==0)
                        ++ly;
        return ly;
}
int month_to_days(int m,int y){
    int day=0;
    for(int i=1;i<=m;i++){
                if((i==2)&&(y%4==0&&y%100!=0||y%400==0))
                     day+=29;
                else if(i==2)
                        day+=28;
                else if(i<8 ? i%2 : !(i%2))
                        day+=31;
                else day+=30;
    }
    return day;
}
Мне лень большие даты на калькуляторе считать, но вроде правильно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru