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

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

Войти
Регистрация
Восстановить пароль
 
 
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
#1

очень странная ошибка с++ - C++

04.07.2013, 16:45. Просмотров 547. Ответов 15
Метки нет (Все метки)

уважаемые администраторы, я пытался это добавить в раздел для экспертов, но меня недостаточно прав(
вот ссылка на видио где я показываю очень странную проблему, я и ещё 2 программиста головою об стенку бились, но так и не поняли из-за чего она http://www.youtube.com/watch?v=dCZkKNCg4js
так же код http://pastebin.com/Q05FY5Xb
 Комментарий модератора 
Сломал все глаза.
Очень странное задание.
В следующий раз потрудитесь переписать задание на форум. А видеозапись можно использовать как дополнительный вспомогательный материал.


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
#include <iostream>
using namespace std;
 
int main();
int age[] = {17,24};
string name[] = {"roma","dima"};
 
//***************************************************************************************
    
void baza()
{
        do
        {
            
            cout << "vvedite id: ";
            int id;
            cin >> id;
            
            if(id > 0 && id < 3)
            {
                cout << endl << "age: " << age[id-1] << endl << "name: " << name[id-1] << endl;
            }
            
            if(id < 1 || id > 2)
            {
                cout << "error" << endl;
            }
            do
            {
                cout << endl << "hotite prodolzit?: ";
                string vopros;
                cin >> vopros;
                
                if(vopros == "net")
                {
                    cout << endl;
                    main();
                }
                if(vopros != "da")
                {
                    cout << endl << "error(!=(da,net))" << endl;
                }
                if(vopros == "da")
                {
                    cout << endl;
                    baza();
                }
            }
            while(true);
        }
        while(true);
}
 
//********************************************************************************
 
void function()
{
            cout << "dopolnitelnie funkchii" << endl
            << "1 - naiti samogo starshego" << endl
            << "2 - naiti srednij vozrast" << endl
            << "3 - redaktor" << endl << endl
            << "vvedite punct: ";
            
            int punct;
            cin >> punct;
            
            if(punct < 1 || punct > 3)
            {
                cout << "error" << endl;
            }
            
            if(punct == 1)
            {
                int a = 0;
                int b = 0;
                for(int i = 0 ; i < 2 ; i++)
                {
                    if(a < age[i])
                    {
                        a = age[i];
                        b = i;
                    }
                }
                cout << endl << "age: " << age[b] << endl << "name: " << name[b] << endl << endl;
                main();
            }
            if(punct == 2)
            {
                    int resultat = 0;
                    for(int i = 0 ; i < 2 ; i++)
                    {
                        resultat += age[i];
                    }
                    resultat /= 2;
                    cout << endl << "srednij vozrast: "<< resultat << endl << endl;
                    main();
            }
}
 
//********************************************************************************
 
int main()
{
    {
        cout << "punct list" << endl
        << "1 - baza dannix" << endl
        << "2 - dopolnitelnie funkchii" << endl
        << "3 - exit" << endl << endl
        << "vvedite punct: ";
        
        int punct;
        cin >> punct;
        
        cout << endl;
        
        if(punct < 1 || punct > 3)
        {
            cout << "error" << endl;
        }
        if(punct == 2)
        {
            function();
        }   
        if(punct == 1)
        {
            baza();
        }
        if(punct == 3)
        {
            return false;
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2013, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос очень странная ошибка с++ (C++):

Странная ошибка при компиляции очень очень большой проги ,,boomerang,, - C++
Я в общем, даже и не представляю, куда смотреть в поисках ошибки. Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

очень очень странная ошибка - C++
вообщем стоит Windows 8.1 стоит visual studio 2008 возникла проблема: когда пытаюсь скомпилировать прогу - возникает 1 ошибка: ...

Очень странная ошибка: Функция gets() вызывается только со второго раза - C++
Нужно написать класс, в объект которого (в массив строк) вводятся несколько фамилий Для записи использую функцию gets() Проблема в том,...

Странная ошибка - C++
// ConsoleApplication5.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Странная ошибка - C++
#ifndef HUGEINTEGER_H #define HUGEINTEGER_H class HugeInteger { public: ...

Странная ошибка с else - C++
Мне пишет что в 21 строке ошибка, делал и с цифрами и с текстом, ошибка всегда на else, ошибка: D:\CBProject\Test1\main.cpp||In...

15
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
04.07.2013, 16:55 #2
У меня: видео мутное, ничего не разобрать. Звука нет...
0
Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
04.07.2013, 17:07 #3
Замените все if'ы на switch, ради бога.
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
04.07.2013, 17:08  [ТС] #4
Цитата Сообщение от zer0mail Посмотреть сообщение
У меня: видео мутное, ничего не разобрать. Звука нет...
звука и вправдо нету а насчёт мутности ты чё в ютюбе никогда не был там на значке шестерёнки качество можно улучшать
0
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
04.07.2013, 17:09 #5
А может не нужно всё-таки main вызывать из всех функций программы? Это во-первых. А во-вторых, когда у Вас получается выход из "вызванной" main, Вы возвращаетесь в место вызова, а там как раз весь сыр бор и никаким выходом из программы не пахнет
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
04.07.2013, 17:10  [ТС] #6
Цитата Сообщение от Croessmah Посмотреть сообщение
А может не нужно всё-таки main вызывать из всех функций программы?
зачем я вызываю main только для того чтобы сделать цикл из функций
0
Vovabo4
19 / 19 / 2
Регистрация: 05.06.2013
Сообщений: 186
04.07.2013, 17:11 #7
Хрен поймёшь в чём проблема.
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
04.07.2013, 17:11 #8
svk2140,
дело в том, что когда вы находясь в функции baza() отвечаете "net" на вопрос "Продолжить выполнение?", то вызывается функция main()
Потом в этой функции вы отвечаете 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
            if(vopros == "net") //вы ответили "net" и условие выполнилось
 
            {
 
                cout << endl;
 
                main(); //запустили функцию
//вы ответили "3" и main завершилась
//функция baza продолжает свое выполнение здесь
            }
 
            if(vopros != "da") // "da" != "net", поэтому условие выполняется. а дальше видите сами
 
            {
 
                cout << endl << "error(!=(da,net))" << endl;
 
            }
 
            if(vopros == "da")
 
            {
 
                cout << endl;
 
                baza();
 
            }
Не стоит забывать, что ОС запускает main() при запуске exe
1
Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
04.07.2013, 17:12 #9
Цитата Сообщение от Croessmah Посмотреть сообщение
А может не нужно всё-таки main вызывать из всех функций программы?
вот вот.
везде где вызываете
C++
1
main();
замените на
C++
1
return;
и
C++
1
int main();
в самом начале не нужен.
0
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
04.07.2013, 17:12 #10
Цитата Сообщение от svk2140 Посмотреть сообщение
зачем я вызываю main только для того чтобы сделать цикл из функций
можно же сделать нормальный цикл, а не по китайски
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
04.07.2013, 17:12  [ТС] #11
Olivеr, ты лучше мне решение предложи
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
04.07.2013, 17:17  [ТС] #12
Denisqwwq, нет нужен не знаю почему вить main запускается самой первой но без инициализации в начале выдаёт ошибку
0
Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
04.07.2013, 17:25 #13
svk2140, если вам так принципиально то
C++
1
2
3
4
if(punct == 3)
 {
    return false;
  }
замените на
C++
1
2
3
4
if(punct == 3)
 {
    exit(0);
  }
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
04.07.2013, 17:28  [ТС] #14
Denisqwwq, а библиотека походу нестандартная
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
04.07.2013, 17:32 #15
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
#include <iostream>
 
using namespace std;
 
int age[] = {17,24};
 
string name[] = {"roma","dima"};
 
void baza()
{
    int id;
    string vopros;
    do {
        cout << "vvedite id: ";
        cin >> id;
 
        if(id > 0 && id < 3)
            cout << endl << "age: " << age[id-1] << endl << "name: " << name[id-1] << endl;
        else
            cout << "error" << endl;
 
        do {
            cout << endl << "hotite prodolzit?: ";
            cin >> vopros;
 
            if(vopros == "net")
                return;
            if (vopros == "da")
                break;
            else
                cout << endl << "error(!=(da,net))" << endl;
 
        } while(true);
    } while(true);
}
 
void function()
{
    cout << "dopolnitelnie funkchii" << endl
         << "1 - naiti samogo starshego" << endl
         << "2 - naiti srednij vozrast" << endl
         << "3 - redaktor" << endl << endl
         << "vvedite punct: ";
 
    int punct, a, b, resultat;
    cin >> punct;
 
    switch (punct) {
    case 1:
        a = b = 0;
        for(int i = 0 ; i < 2 ; i++)
            if(a < age[i]) {
                a = age[i];
                b = i;
            }
 
        cout << endl << "age: " << age[b] << endl << "name: " << name[b] << endl << endl;
        break;
    case 2:
        resultat = 0;
        for(int i = 0 ; i < 2 ; i++)
            resultat += age[i];
        resultat /= 2;
        cout << endl << "srednij vozrast: "<< resultat << endl << endl;
        break;
    case 3:
        break;
    default:
        cout << "error\n";
    }
 
}
 
 
int main()
 
{
    int punct;
    do {
        cout << "punct list" << endl
 
             << "1 - baza dannix" << endl
 
             << "2 - dopolnitelnie funkchii" << endl
 
             << "3 - exit" << endl << endl
 
             << "vvedite punct: ";
 
        cin >> punct;
 
        switch (punct) {
        case 1:
            baza();
            break;
        case 2:
            function();
            break;
        case 3:
            break;
        default:
            cout << "error" << endl;
        }
    } while (punct != 3);
    return 0;
}
0
04.07.2013, 17:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2013, 17:32
Привет! Вот еще темы с ответами:

Странная(или не странная, незнаю) реакция на буквы, знаки операций - C++
Всем добрый день. Делаю маленькую наработку, пока есть только начало. Ниже код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; using...

Странная ошибка в программе - C++
Когда ввожу имя файла и жму Enter - выводится такая ошибка. Что делать?

Странная ошибка в коде - C++
Задание гласит: Найти значение конечной суммы:1+3+...+2n-1 Имею код Pascal Program 5; Uses Crt; var i, n, S,...

Странная ошибка при агрегации - C++
Привет, товарищи, столкнулся с нетривиальной проблемой, собственно сразу к ней. Есть 2 класса (напишу лишь проблемные методы, как ни...


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

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

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