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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Дарина DF
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 2
#1

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

30.03.2014, 01:04. Просмотров 773. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчет дня недели по дате, исправьте ошибки (C++):

Определение дня недели по дате - C++
Помогите найти ошибку. Работает, но не корректно. Определяет не тот день. #include&lt;stdio.h&gt; #include&lt;iostream&gt; void main() { ...

Определение дня недели по дате - C++
Помогите исправить, неправильно находит день недели. int date_day::true_day() const { size_t totalDays = 0; bool...

Вычисление дня недели по дате - C++
здравствуйте. как можно вычислить день недели по дате? слышала про формулу Зеллера, но там мало что понятного Спасибо!

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

Алгоритм вычисления дня недели по дате - C++
Посдкажите алгоритм вычисления дня недели по дате( день, месяц, год). int a = (14 - month)/12; int y = year - a; int m = month +...

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

8
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");
}
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 / 5
Регистрация: 29.03.2014
Сообщений: 61
30.03.2014, 02:05 #5
Не по теме:
А я то думал мы тут с++ дебажим, а не ошибки грамматические исправляем
0
IrineK
30.03.2014, 02:12
  #6

Не по теме:

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

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

Не по теме:

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

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

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

Не по теме:

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

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

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

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

Определить номер дня недели для заданного дня года - C++
Дни недели пронумерованы следующим образом: 0 — воскресенье, 1 — понедельник, 2 — вторник, ..., 6 — суббота. Дано целое число K, лежащее в...

Выведите номер дня недели для данного дня года - C++
Помогите,пожалуйста...Среда Free Pascal Дан порядковый номер дня года (отсчет идет с 1-го января). Требуется вывести номер дня недели...


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

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

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