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

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

Восстановить пароль Регистрация
 
Дарина DF
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 2
30.03.2014, 01:04     Расчет дня недели по дате, исправьте ошибки #1
Программа должна считать день недели по дате, использую по заданию какую то римскую формулу.


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;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 01:04     Расчет дня недели по дате, исправьте ошибки
Посмотрите здесь:

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели C++
Алгоритм вычисления дня недели по дате C++
C++ вычисление дня недели по дате
C++ Определение дня недели по введенной дате
Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YDS
11 / 11 / 5
Регистрация: 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");
}
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. Чуток подправил разметку, обьявил необьявлённые ранее переменные и переписал вашу формулу.
П.С. Суббота пишется с двумя "б"
IrineK
30.03.2014, 02:02
  #4

Не по теме:

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

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

Не по теме:

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

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

Не по теме:

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

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2014, 02:20     Расчет дня недели по дате, исправьте ошибки
Еще ссылки по теме:

C++ Напишите программу, которая по дате определяет день недели, на который эта дата приходится. Для вычисления дня недели воспользуйтесь формулой:
Определение дня недели по дате C++
C++ Определить номер дня недели для заданного номера дня года

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

Или воспользуйтесь поиском по форуму:
MastAKK
30.03.2014, 02:20     Расчет дня недели по дате, исправьте ошибки
  #9

Не по теме:

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

Yandex
Объявления
30.03.2014, 02:20     Расчет дня недели по дате, исправьте ошибки
Ответ Создать тему
Опции темы

Текущее время: 21:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru