Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Дарина DF
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 2
1

Расчет дня недели по дате, исправьте ошибки

30.03.2014, 01:04. Просмотров 929. Ответов 8
Метки нет (Все метки)

Программа должна считать день недели по дате, использую по заданию какую то римскую формулу.


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
#include <iostream>
#include <Windows.h>
#include "StdAfx.h"
using namespace std;
void main()
{
    setlocale(LC_ALL,"russian");
   int d,m,Y,c;
 
 
   cout << " Введите день: ";
   cin >> day;
   cout << "Введите месяц: ";
   cin >> month;
   cout << " Введите год: ";
   cin >> year;
   d=day;
   if (month<2) m=month+10;
   else m=month-2;
   c=abs(year/100)+1;
   Y=year-((abs(year/100))*100);
 
 
    int numberOfDay = abs(d+(1/5*(13*m-1))+Y+abs(Y/4+c/4-2*c+777))mod7;
 
    switch (numberOfDay % 7) 
    {
        case 1:
            cout << "Понедельник\n";
            break;
 
        case 2:
            cout << "Вторник\n";
            break;
        case 3:
            cout << "Среда\n";
            break;
        case 4:
            cout << "Четверг\n";
            break;
        case 5:
            cout << "Пятница\n";
            break;
        case 6:
            cout << "Субота\n";
            break;
        case 7:
            cout << "Воскресение\n";
            break;
        
 
        default: 
            break;
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 01:04
Ответы с готовыми решениями:

Вычисление дня недели по дате
здравствуйте. как можно вычислить день недели по дате? слышала про формулу...

Определение дня недели по дате
Помогите исправить, неправильно находит день недели. int...

Определение дня недели по дате
Помогите найти ошибку. Работает, но не корректно. Определяет не тот день. ...

Алгоритм вычисления дня недели по дате
Посдкажите алгоритм вычисления дня недели по дате( день, месяц, год). int a =...

Определение дня недели по введенной дате
Доброго времени суток! Программу я составил, вводишь день,месяц и год, и день...

8
YDS
11 / 11 / 6
Регистрация: 29.03.2014
Сообщений: 61
30.03.2014, 01:29 2
1)ты не инициализировала day, month, year, переменные в которые ты с экрана что-то вводишь.
2) mod в с++ пишется %
3) и не забывай писать в конце system("pause") если хочешь видеть как твоя прога что-то выводит., а не просто выполняется.
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
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"russian");
   int d,m,Y,c;
    int day,month,year;
 
   cout << " Введите день: ";
   cin >> day;
   cout << "Введите месяц: ";
   cin >> month;
   cout << " Введите год: ";
   cin >> year;
   d=day;
   if (month<2) m=month+10;
   else m=month-2;
   c=abs(year/100)+1;
   Y=year-((abs(year/100))*100);
 
 
    int numberOfDay = abs(d+(1/5*(13*m-1))+Y+abs(Y/4+c/4-2*c+777))%7;
 
    switch (numberOfDay % 7) 
    {
        case 1:
            cout << "Понедельник\n";
            break;
 
        case 2:
            cout << "Вторник\n";
            break;
        case 3:
            cout << "Среда\n";
            break;
        case 4:
            cout << "Четверг\n";
            break;
        case 5:
            cout << "Пятница\n";
            break;
        case 6:
            cout << "Субота\n";
            break;
        case 7:
            cout << "Воскресение\n";
            break;
        
 
        default: 
            break;
    }
    system("pause");
}
0
Nure
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 2
30.03.2014, 01:30 3
Вот Вам рабочий код:
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
#include <iostream>
 
void main()
{
    setlocale(LC_ALL, "RUS");
 
    int d, m, Y, c;
    int day, month, year;
 
    std::cout << " Введите день: ";
    std::cin  >> day;
    std::cout << " Введите месяц: ";
    std::cin  >> month;
    std::cout << " Введите год: ";
    std::cin  >> year;
 
    d = day;
    if (month < 2) { m = month + 10;}
    else           { m = month - 2 ;}
    c = abs(year / 100) + 1;
    Y = year - ((abs(year / 100)) * 100);
 
 
    int numberOfDay = ( abs(d + (1 / 5 * (13 * m - 1)) + Y + abs(Y / 4 + c / 4 - 2 * c + 777)) );
 
    switch (numberOfDay % 7)
    {
    case 1:
        std::cout << "Понедельник\n";
        break;
 
    case 2:
        std::cout << "Вторник\n";
        break;
    case 3:
        std::cout << "Среда\n";
        break;
    case 4:
        std::cout << "Четверг\n";
        break;
    case 5:
        std::cout << "Пятница\n";
        break;
    case 6:
        std::cout << "Суббота\n";
        break;
    case 7:
        std::cout << "Воскресение\n";
        break;
    default:
        break;
    }
 
    system("pause");
    return;
}
Что я сделал:
1. Создал пустой проект, поестил в него Ваш код.
2. Убрал ненужные библиотки ускорения компиляции заголвка и "windows", вместо указания лобального пространства имён, я указываю его локально (std:.
3. Чуток подправил разметку, обьявил необьявлённые ранее переменные и переписал вашу формулу.
П.С. Суббота пишется с двумя "б"
0
IrineK
30.03.2014, 02:02
  #4

Не по теме:

Тут не только суббота.
Воскресение и воскресенье - не одно и то же.

0
YDS
11 / 11 / 6
Регистрация: 29.03.2014
Сообщений: 61
30.03.2014, 02:05 5
Не по теме:
А я то думал мы тут с++ дебажим, а не ошибки грамматические исправляем
0
IrineK
30.03.2014, 02:12
  #6

Не по теме:

По опыту (оч долговременному) ошибки в языках алгоритмических и человеческих странным образом коррелируют.

0
YDS
11 / 11 / 6
Регистрация: 29.03.2014
Сообщений: 61
30.03.2014, 02:17 7
Не по теме:
Спорить с опытом не имею права.
0
IrineK
30.03.2014, 02:19
  #8

Не по теме:

Право имеешь.
Но - бесполезно 8-)

Все - завязываем с оффтопом.

0
MastAKK
30.03.2014, 02:20     Расчет дня недели по дате, исправьте ошибки
  #9

Не по теме:

YDS, для оффтопа есть кнопочка OFF сверху ;)

0
30.03.2014, 02:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2014, 02:20
Привет! Вот еще темы с ответами:

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели
Написать программу, которая запрашивает у пользователя номер дня недели, затем...

Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели
!!!!!

Определить номер дня недели для заданного номера дня года
а как это примерно будет на C++ ?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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