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

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

Восстановить пароль Регистрация
 
geforcevolume
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 4
29.05.2014, 08:18     Вывод дня недели #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
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;
Но также не компилиться.

В чем мой прокол?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 08:18     Вывод дня недели
Посмотрите здесь:

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели C++
Составить программу, которая по номеру введенного дня недели вводит название дня. C++
Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели C++
Определить номер дня недели для K дня года C++
C++ Напишите программу, которая по дате определяет день недели, на который эта дата приходится. Для вычисления дня недели воспользуйтесь формулой:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
29.05.2014, 08:43     Вывод дня недели #2
Цитата Сообщение от geforcevolume Посмотреть сообщение
В чем мой прокол?
Наверное в том, что в math.h нет функции round
http://ru.wikipedia.org/wiki/Math.h

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

как раз таки round есть, прокрути ниже
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
29.05.2014, 09:23     Вывод дня недели #4
geforcevolume, Она не во всех версиях присутствует, как я понимаю, попробуй использовать другие функции для округления.
Для остатка % используют обычно....насколько помню.
geforcevolume
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 4
29.05.2014, 09:33  [ТС]     Вывод дня недели #5
А какие другие есть функции для округления?
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
29.05.2014, 10:44     Вывод дня недели #6
ceil
floor
Yandex
Объявления
29.05.2014, 10:44     Вывод дня недели
Ответ Создать тему
Опции темы

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