Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
1

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

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

Author24 — интернет-сервис помощи студентам
уважаемые администраторы, я пытался это добавить в раздел для экспертов, но меня недостаточно прав(
вот ссылка на видио где я показываю очень странную проблему, я и ещё 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2013, 16:45
Ответы с готовыми решениями:

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

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

Очень странная ошибка, которая не имеет смысла
Сразу скажу, что использую VS2017. Опишу ситуацию вкратце. У меня есть заголовочный файл с...

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

15
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
04.07.2013, 16:55 2
У меня: видео мутное, ничего не разобрать. Звука нет...
0
38 / 32 / 7
Регистрация: 01.06.2013
Сообщений: 117
04.07.2013, 17:07 3
Замените все if'ы на switch, ради бога.
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
04.07.2013, 17:08  [ТС] 4
Цитата Сообщение от zer0mail Посмотреть сообщение
У меня: видео мутное, ничего не разобрать. Звука нет...
звука и вправдо нету а насчёт мутности ты чё в ютюбе никогда не был там на значке шестерёнки качество можно улучшать
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
04.07.2013, 17:09 5
А может не нужно всё-таки main вызывать из всех функций программы? Это во-первых. А во-вторых, когда у Вас получается выход из "вызванной" main, Вы возвращаетесь в место вызова, а там как раз весь сыр бор и никаким выходом из программы не пахнет
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
04.07.2013, 17:10  [ТС] 6
Цитата Сообщение от Croessmah Посмотреть сообщение
А может не нужно всё-таки main вызывать из всех функций программы?
зачем я вызываю main только для того чтобы сделать цикл из функций
0
21 / 19 / 4
Регистрация: 05.06.2013
Сообщений: 190
04.07.2013, 17:11 7
Хрен поймёшь в чём проблема.
0
415 / 411 / 95
Регистрация: 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
38 / 32 / 7
Регистрация: 01.06.2013
Сообщений: 117
04.07.2013, 17:12 9
Цитата Сообщение от Croessmah Посмотреть сообщение
А может не нужно всё-таки main вызывать из всех функций программы?
вот вот.
везде где вызываете
C++
1
main();
замените на
C++
1
return;
и
C++
1
int main();
в самом начале не нужен.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
04.07.2013, 17:12 10
Цитата Сообщение от svk2140 Посмотреть сообщение
зачем я вызываю main только для того чтобы сделать цикл из функций
можно же сделать нормальный цикл, а не по китайски
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
04.07.2013, 17:12  [ТС] 11
Olivеr, ты лучше мне решение предложи
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
04.07.2013, 17:17  [ТС] 12
Denisqwwq, нет нужен не знаю почему вить main запускается самой первой но без инициализации в начале выдаёт ошибку
0
38 / 32 / 7
Регистрация: 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
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
04.07.2013, 17:28  [ТС] 14
Denisqwwq, а библиотека походу нестандартная
0
415 / 411 / 95
Регистрация: 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
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
04.07.2013, 17:35  [ТС] 16
всё люди всем спасибо я решил проблему благодаря пояснению oliver
0
04.07.2013, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2013, 17:35
Помогаю со студенческими работами здесь

Очень странная ошибка!
Прошу посмотрите пожалуйста, выводит такую ошибку : Project1.dpr(11): F1026 File not found:...

Очень странная ошибка
Ребята, из-за чего у меня это может быть - этот скрипт &lt;?php /* сначала делаем то же, что и...

Очень странная ошибка однако (WB)
Работаю над своим браузером. решил сделать что-то наподобие перехвата вкладок. При компиляции в...

очень странная ошибка доступа к бд
собственно текст ошибки: Warning: mysql_query() : Access denied for user 'ODBC'@'127.0.0.1'...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru