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

Вечный календарь ошибка компиляции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить обратную величину произведения тех членов последовательности A1.An, для которых i+1<ai<i http://www.cyberforum.ru/cpp-beginners/thread1010123.html
Буду благодарен за помощь в решении и блок-схему по возможности :-[ Даны натуральное число n, действительные числа a1.....an. Вычислить обратную величину произведения тех членов последовательности а1....аn, для которых выполняется условие i+1<ai<i
C++ new, malloc, Добрый день. При роботе с дин. памяттю в конец выделяемой памяти добавляеться какойто бред, чтото топа "<<<ЮЮЮээээ". Почему так присходит? http://www.cyberforum.ru/cpp-beginners/thread1010119.html
алгоритм шифрования MISTY1 C++
Здравствуйте, у кого есть исходник misty1 желательно рабочий - поделитесь пожалуйста, просто в интернете нигде найти не могу. спасибо
C++ Вычислить сумму заштрихованных элементов матрицы
Вычислить сумму заштрихованных элементов матрицы показанных на рисунке. Рисунок Мне надо сделать нижнюю часть(такую же как и верхняя) Вот верхняя часть: #include "stdafx.h" #include "iostream" #include "ctime" using namespace std;
C++ Обработка строк и указатели http://www.cyberforum.ru/cpp-beginners/thread1010115.html
всем доброго времени суток ! :) мне дали вот такое вот интересное и в тоже время очень трудное ( для меня, новичка) задание, с которым я, к сожалению, не могу справиться. вот что я смогла написать. #include <iostream> #include <cstring> using namespace std; int main() {
C++ Найти ошибку в программе. Приближенное вычисление косинуса Писал вот такую программу для приближенного вычисления косинуса через ряды, в принципе только для того что бы разобраться с функциями. Но где-то ошибка и я не могу ее найти, знаю что все можно было легче написать, но я это делаю только что бы научится. код: #include <iostream> #include <conio.h> #include <stdio.h> #include <math.h> using namespace std; float Sn, x, val; int tmp,tmpI = 0; подробнее

Показать сообщение отдельно
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
17.11.2013, 18:17     Вечный календарь ошибка компиляции
я о том, что такой код проще читать
C++
1
2
3
4
5
6
7
8
9
10
11
12
/*функция проверки корректности задания дат*/
int fun2(int y1) {
    int x1; //промежуточная переменная
    if (y1 == 1 || y1 == 3 || y1 == 5 || y1 == 7 || y1 == 8 || y1 == 10
            || y1 == 12)
        x1 = 1;
    else if (y1 == 2)
        x1 = -2;
    else
        x1 = 0;
    return x1; //значение которое возвращает функция
}
Добавлено через 2 минуты
или еще проще
C++
1
2
3
4
5
6
7
8
9
/*функция проверки корректности задания дат*/
int fun2(int y1) {
    int x1 = 1; //промежуточная переменная
    if (y1 == 2)
        x1 = -2;
    else if (y1 == 4 || y1 == 6 || y1 == 9 || y1==11)
        x1 = 0;
    return x1; //значение которое возвращает функция
}
Добавлено через 1 час 41 минуту
См., просто небольшая переделка кода
Кликните здесь для просмотра всего текста
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <iostream>
#include <string.h>//работа со строками
using namespace std;
int fun3(int, int);
 
/*функция просчёта дня недели*/
int fun1(int d, int m, int y) {
    int a, b, c = 0; //промежуточные значения
    b = fun3(m, y);
    a = (y - 1) / 4;
    int t = y * 365 + m * 30 + d + a + b - (y - 1) / 100 + (y - 1) / 400;
    if ((y / 4 * 4 == y && y / 100 * 100 != y) || y / 400 * 400 == y) //проверка на високосный год
        c = -1;
    if (m == 2) //если февраль считать по этой формуле
        return t - 4 + c;
    else if (m == 4 || m == 6 || m == 9 || m == 11) //если эти месяцы – апрель, июнь, сентябрь, ноябрь, то считать по этой формуле
        return t + 1;
    else
        return t; //при остальных месяцах считать по этой формуле
}
 
/*функция проверки корректности задания дат*/
int fun2(int y1) {
    int x1 = 1; //промежуточная переменная
    if (y1 == 2)
        x1 = -2;
    else if (y1 == 4 || y1 == 6 || y1 == 9)
        x1 = 0;
    return x1; //значение которое возвращает функция
}
int fun3(int m, int y) {
    int x1; //промежуточная переменная
    if ((y / 4 * 4 == y && y / 100 * 100 != y) || y / 400 * 400 == y) {
        if (m == 1 || m == 3 || m == 4)
            x1 = 1;
        else if (m == 2)
            x1 = 0;
        else if (m == 5 || m == 6)
            x1 = 2;
        else if (m == 7)
            x1 = 3;
        else if (m == 8 || m == 9)
            x1 = 4;
        else if (m == 10 || m == 11)
            x1 = 5;
        else
            x1 = 6;
    } else {
        if (m == 1 || m == 5 || m == 6)
            x1 = 1;
        else if (m == 2)
            x1 = -1;
        else if (m == 3 || m == 4)
            x1 = 0;
        else if (m == 7)
            x1 = 2;
        else if (m == 8 || m == 9)
            x1 = 3;
        else if (m == 10 || m == 11)
            x1 = 4;
        else
            x1 = 5;
 
    }
    return x1; //значение которое возвращает функция
}
 
int return_m(char * q2) {
    const char* month[] = { "jan", "feb", "mar", "apr", "may", "jun", "jul",
            "aug", "sep", "oct", "nov", "dec" };
    int m = -1, i=0;
    for (i = 0; i < 12; ++i)
        if (strcmp(q2, month[i]) == 0) {
            m = i;
            break;
        }
    if (m == -1)
        cout << "Error";
    return m;
}
 
void print_day(int x) {
    const char *day[] = { "Wednesday", "Thursday", "Friday", "Saturday",
            "Sunday", "Monday", "Tuesday" };
    if (x < 7)
        cout << "It is " << day[x] << endl << endl;
    else
        cout << "Sistem error \n\n" << "\a";
 
}
 
/*главная функция*/
int main() {
    int d, m, y, x, a, n = 1; //переменные которые, соответственно: день, месяц, год, день недели, выбор формата, промежуточная переменная
    char q1[] = "yes", q2[4]; //переменные которые проверяют продолжать работу с программой или нет
    cout
            << "Select the format of writing dates,then:  1 - normal (ex. 01 jan 2008),  other  number - american (ex. 01 01 2008) \n";
    cin >> a;
    cout << "\n";
 
    while (true) //вечный цикл
    {
        if (a == 1) //если выбран обычный формат
                {
            cout << "Imput data, month, year \n";
            cin >> d >> q2 >> y; //ввод даты
            /*переход от обычного формата к цифровому*/
            m = return_m(q2);
        } else //если выбран цифровой формат
        {
            cout << "Imput data, month, year \n";
            cin >> d >> m >> y; //ввод даты
        }
        if (d > 0 && m > 0 && y >= 0 && d < 32 && m < 13) //поверхностная проверка корректности даты
                {
            if ((fun2(m) == 1 && d < 32) || (fun2(m) == 0 && d < 31)
                    || (fun2(m) == -2 && d < 29)
                    || (fun2(m) == -2
                            && ((y / 4 * 4 == y && y / 100 * 100 != y)
                                    || y / 400 * 400 == y)) && d < 30) //проверка корректности даты
                            {
                x = fun1(d, m, y) % 7; //вызов функции просчёта дня недели
                print_day(x);
            } else
                cout << "Error, does not correct record date \n\n"; //сообщение об ошибке
        } else
            cout << "Error, does not correct record date \n\n"; //сообщение об ошибке
        cout
                << "Would you like to continue working with the program? (yes/no)\n"; //запрос на продолжение работы с программой
        cin >> q2; //ввод да или нет
        cout
                << "_______________________________________________________________________________\n\n";
        ;
        if (strcmp(q1, q2) != 0) //проверка на продолжение работы с программой
            break; // выход из вечного цикла
        else
            n++; //продолжение работы с программой
    }
    cout << "By , ki-12-1. \n"; //конечное сообщение
    cin >> y;
 
    return 0;
}

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