Исправить код

 
0
 
C++
ava
artilin | 08.12.2016, 18:24
Задние такое: Получить даты всех праздничных дней года, которые бы совпадали в заданном году с выходными (суббота или воскресенье). Помогите найти ошибку, не правильно вычисляются даты



#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <windows.h>
#define KPD 11
struct struct_date
{
    int day;
    int month;
    int year;
};

int what_day(const struct struct_date* date) // Формула вечного календаря
{
    int a = (14 - date->month) / 12;
    int y = date->year - a;
    int m = date->month + 12 * a - 2;
    return (7000 + (date->day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
}
void Holliday()
{
    int j=0;
    int M[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int mas_pr[2][KPD]={ {1,2,7,8,1,2,9,28,25,7,8},{1,1,1,3,5,5,5,6,8,11,11}}; // Праздничные даты( {день},{месяц})
    int Uyear=0,T=0;
    printf("Введите год:\n");
    while((!scanf("%d", &Uyear))||(Uyear<=0))
        {
            printf("Повторите ввод года:\n");
            fflush(stdin);
        }
    if((Uyear%4==0)&&(Uyear%100==0)&&(Uyear%400==0))
        M[1]=29;
    
    for(int i=mas_pr[1][0]; i<11;i++)
    {
        for( j=mas_pr[0][j]; j<=KPD; j++)
        {
            struct_date a={j, i+1, Uyear};
            T=what_day(&a);
            if((T==6)||(T==0)) printf("Праздник совпадает с выходным %d-го числа %d-го месяца\n", j,i+1);
        }
    }
}


int main()
{
    setlocale(LC_ALL, "rus");
    Holliday();
    _getch();
    return 0;
}
Ответы (5)
ava
_zorn_ | 08.12.2016, 22:00 #
А свои мысли есть почему ?
Или просто "взял" и "сделайте" ?
ava
Olej | 09.12.2016, 02:09 #
Цитата (artilin @ 8.12.2016,  18:24)
Задние такое: Получить даты всех праздничных дней года, которые бы совпадали в заданном году с выходными (суббота или воскресенье).

1. Что ж вы на всех форумах хвастаетесь этим кодом и задаёте один и тот же вопрос.
2. Я вам на другом форуме уже ответил а). что код ваш говённый и б). почему.
3. И там же показал примерное решение в 10 строк кода.
ava
mailworker5 | 09.12.2016, 18:40 #
http://rusregioninform.ru/stati-i-obzori/l...dit-v-bane.html

Лучшие корпоративы нужно проводить в бане!
Великолепная природа, зеркальная вода, отличная парная.
Это все создаст непринужденную обстановку и, наверняка, поможет добиться желаемых результатов в деловых переговорах.
Проведите Новогодний корпоратив в бане – наберетесь сил, отдохнете и укрепите здоровье
Проведенный в бане корпоратив,улучшает благоприятную атмосферу общения сотрудников,
снимает стрессовое напряжение, нередко возникающее у них в условиях достаточно напряженной и высоко ответственной работы.



ava
xvr | 09.12.2016, 19:18 #
2 ТС - Вас ненавязчиво послали в баню  :dance3 Иногда и спамеры могут на что то сгодится  :girl_crazy 
ava
_zorn_ | 09.12.2016, 21:39 #
Иманунца. Как только не называют сауну с проститутками  :crazy 
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  _zorn_   xvr   artilin   Olej ava  mailworker5
advanced
Отправить