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

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

Войти
Регистрация
Восстановить пароль
 
geforcevolume
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 4
#1

Вывод дня недели - C++

29.05.2014, 08:18. Просмотров 717. Ответов 5
Метки нет (Все метки)

Решаю задачу, где нужно узнать день недели введенной даты, если считать, что первый день нашей эры был понедельником. Вот моя программа:
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
58
59
60
61
62
#include "stdafx.h"
#include <math.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    struct date {
        int day;
        int month;
        int year;};
    date d1;
    cout<<"Введите дату (dd mm yyyy): ";
    cin>>d1.day>>d1.month>>d1.year;
    double kol,vis;
    kol=round(d1.year/4)*366-(d1.year-round(d1.year/4))*365;
    if (d1.month == 2)
        kol=kol+31;
    if (d1.month == 3)
        kol=kol+59;
    if (d1.month == 4)
        kol=kol+90;
    if (d1.month == 5)
        kol=kol+120;
    if (d1.month == 6)
        kol=kol+151;
    if (d1.month == 7)
        kol=kol+181;
    if (d1.month == 8)
        kol=kol+212;
    if (d1.month == 9)
        kol=kol+243;
    if (d1.month == 10)
        kol=kol+273;
    if (d1.month == 11)
        kol=kol+304;
    if (d1.month == 12)
        kol=kol+334;
    vis=d1.year-round(d1.year/4)*4;
    if (vis == 0 & d1.month>2)
        kol=kol+1;  // если текущий год високосный
    kol=kol+d1.day;
    
    kol=kol-round(kol/7)*7;
    if (kol == 0)
        cout<<"\nВоскресенье";
    if (kol == 1)
        cout<<"\nПонедельник";
    if (kol == 2)
        cout<<"\nВторник";
    if (kol == 3)
        cout<<"\nСреда";
    if (kol == 4)
        cout<<"\nЧетверг";
    if (kol == 5)
        cout<<"\nПятница";
    if (kol == 6)
        cout<<"\nСуббота";
    system("pause");
}
Однако программа не компилируется. Пишет: error C3861: round: идентификатор не найден

До этого я пытался скомпилировать следующее:
Вместо
C++
1
kol=kol-round(kol/7)*7;
Использовать
C++
1
kol=kol\7;
Но также не компилиться.

В чем мой прокол?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 08:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод дня недели (C++):

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

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

Календарь. Ввод даты - вывод дня недели - C++
Здрасте , помогите написать ф-ю. Ввожу 4.11.2014 , программа выдает &quot;Вторник&quot; спасибо большое

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

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

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

5
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
29.05.2014, 08:43 #2
Цитата Сообщение от geforcevolume Посмотреть сообщение
В чем мой прокол?
Наверное в том, что в math.h нет функции round
http://ru.wikipedia.org/wiki/Math.h

Добавлено через 1 минуту
Цитата Сообщение от geforcevolume Посмотреть сообщение
kol=kol\7;
Что должно делать это выражение? деление обычно так пишется: /
0
geforcevolume
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 4
29.05.2014, 09:20  [ТС] #3
\ - возвращает остаток от деления

как раз таки round есть, прокрути ниже
0
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
29.05.2014, 09:23 #4
geforcevolume, Она не во всех версиях присутствует, как я понимаю, попробуй использовать другие функции для округления.
Для остатка % используют обычно....насколько помню.
0
geforcevolume
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 4
29.05.2014, 09:33  [ТС] #5
А какие другие есть функции для округления?
0
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
29.05.2014, 10:44 #6
ceil
floor
0
29.05.2014, 10:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2014, 10:44
Привет! Вот еще темы с ответами:

Составьте программу, печатающую по номеру дня недели (число от 1 до 7) название этого дня - C++
Составьте программу, печатающую по номеру дня недели (число от 1 до 7) название этого дня (понедельник, вторник и т. д.).

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

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

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


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

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

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