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

Проверьте, пожалуйста. Задание: определить, каким днем недели является 1 января данного года - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ символьные матрицы в C++ http://www.cyberforum.ru/cpp-beginners/thread1005121.html
Заменить символом '*' все элементы, расположенные выше побочной диагонали и не являющиеся цифрами.
C++ 2*a*b*c Привет, пожалуйста помогите пофиксить 17-строчный код :) #include <iostream> #include <fstream> #include <stdlib.h> using namespace std; int main() { int a,b,c; ifstream I; I.open("input.txt"); http://www.cyberforum.ru/cpp-beginners/thread1005115.html
Программа-тест на темперамент C++
Здравствуйте! C++ начал учить недавно, но уже появилась небольшая задача, которую хотел бы решить с помощью программирования. Задача такова: 1. Тест на темперамент. 2. По окончании теста, по соотношению ответов выдаётся один из 4х результатов (сангвиник, холерик, меланхолик, флегматик). 3. Результат каким-либо образом должен попасть от пользователя ко мне (+В полученном результате должно...
Наследование классов C++
Есть базовый класс: class people { public: char *name; }; Есть производный класс, который наследуется от базового: class worker : public people { public:
C++ Табулирование на некотором интервале; Определение областей убывания ; Определение минимумов http://www.cyberforum.ru/cpp-beginners/thread1005107.html
Всем доброго времени суток. Прощу прощения, нужна ваша помощь. Если кто может помочь буду благодарен. Для функции y=sin(x)+(x+a); y=exp(x)+(x+a) осуществляется: a.Табулирование на некотором интервале; b.Определение областей убывания ; c.Определение минимумов методом половинного деления или установление факта отсутствия таковых на данном интервале.
C++ бинарное дерево: вычисление алгебраического выражения Построить и вывести на экран бинарное дерево алгебраического выражения. Написать функции обходов: инфиксный, префиксный, постфиксный. пример выражения: 9+ 8*(7+(6*(5+4)–(3–2))+1) подробнее

Показать сообщение отдельно
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
12.11.2013, 17:36     Проверьте, пожалуйста. Задание: определить, каким днем недели является 1 января данного года
Дана задача:
Вводится номер года. Определить, каким днем недели является 1 января данного года, если 1 января 1900 года - понедельник (для решения этой задачи заметим, что в случае, когда год невисокосный, 1 января следующего года сдвигается на 1 день недели, а если год високосный -то на 2).

P.S Високосный год - это год, который делится на 4, но не делится на 100, либо просто делится на 400.

Вот что в итоге вышло:
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
#include<iostream>
using namespace std;
int main() {
    int i=0, year, suka=1900;
    cout<<"Enter year: "<<endl;
    cin>>year;
    if(suka <= year) {
    while(suka <= year) {
        if (((suka%4==0)&&(suka%100!=0))||(suka%400==0)) {
            i=i+2;}
        else {
            i++;
        }
    suka++;
    }
    int lox = i%7;
    switch(lox) {
        case 1: cout<<"Monday";break;
        case 2: cout<<"Tuesday";break;
        case 3: cout<<"Thursday";break;
        case 4: cout<<"4etverg";break;
        case 5: cout<<"Friday";break;
        case 6: cout<<"Saturday";break;
        case 0: cout<<"Sunday";break;
        }
    }
 
    else {
    while(year <= suka) {
        if (((year%4==0)&&(year%100!=0))||(year%400==0)) {
            i=i+2;}
        else {
            i++;
        }
    year++;
    }
    int lox = i%7;
    switch(lox) {
        case 1: cout<<"Monday";break;
        case 2: cout<<"Tuesday";break;
        case 3: cout<<"Thursday";break;
        case 4: cout<<"4etverg";break;
        case 5: cout<<"Friday";break;
        case 6: cout<<"Saturday";break;
        case 0: cout<<"Sunday";break;
        }
}
    system("PAUSE");
    return 0;
}

Правильно ли это? И может это всё можно было сделать гораздо проще?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru