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

оооочень странно не выполняется условие - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 19:59     оооочень странно не выполняется условие #1
C++
1
2
3
4
5
6
7
    bool c = true;
    if(c == true)
    {
        cout << "w" << endl;
        loading();
        c = false;
    }
этот код должен выполнятся вроде бы 1 раз, но он выполняется постоянно.

вот код программы (код который вверху в начале main)

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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
 
bool petla = true;
int main();
 
int w = 0;
int age2[] = {17,24};
int *age = new int;
string nema2[] = {"roma","dima"}; 
string name[] = {"roma","dima"};
 
//***************************************************************************************
 
void loading()
{
    fstream file2;
    file2.open ("c:\\baza_save_age.txt");
    for(int i = 0; i < 2;i++)
    {
        file2 >> age[i];
    }
    file2.close();
        
    cout << "loading baza age" << endl << endl;
 
    system("del c:\\baza_save_age.txt");
    system("@echo off > c:\\baza_save_age.txt");
    
    for(int i = 0;i < 2;i++)
    {
        cout << age[i] << " ";
    }
}
 
//***************************************************************************************
    
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" && petla != false)
                {
                    cout << endl << "error(!=(da,net))" << endl;
                }
                if(vopros == "da")
                {
                    cout << endl;
                    baza();
                }
            }
            while(petla);
        }
        while(petla);
}
 
//********************************************************************************
 
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()
{
    bool c = true;
    if(c == true)
    {
        cout << "w" << endl;
        loading();
        c = false;
    }
    do
    {   
        cout << endl << endl;
        {
            cout << "punct list" << endl
            << "1 - baza dannix" << endl
            << "2 - dopolnitelnie funkchii" << endl
            << "3 - save end exit" << endl << endl
            << "vvedite punct: ";
            
            int punct;
            cin >> punct;
            
            cout << endl;
            
            if(punct < 1 || punct > 3)
            {
                cout << "error" << endl << endl;
            }
            if(punct == 2)
            {
                function();
            }   
            if(punct == 1)
            {
                baza();
            }
            if(punct == 3)
            {           
                fstream file1;
                file1.open ("c:\\baza_save_age.txt");
                for(int i = 0;i < 2;i++)
                {
                    file1 << age2[i] << " "; 
                }
                file1.close();
                
                petla = false;
                return false;
            }
        }
    }
    while(petla);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 19:59     оооочень странно не выполняется условие
Посмотрите здесь:

C++ Не выполняется условие
C++ if выполняется, не смотря на условие
C++ Не выполняется условие
Не выполняется условие. Причина не ясна C++
C++ Не выполняется условие!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 20:04     оооочень странно не выполняется условие #2
почему у вас одни циклы do{} while(); вложены в другие?
сами себя запутаете ими
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:07  [ТС]     оооочень странно не выполняется условие #3
у меня вопрос можно ли както этот вопрос удалить? потому что я нашол ответ.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:08     оооочень странно не выполняется условие #4
а зачем у вас в мейне вооообще эти строки?
если их стереть, и оставить просто cout и вызов функции, действие программы изменится чуть более, чем никак
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:09  [ТС]     оооочень странно не выполняется условие #5
Цитата Сообщение от 120° Посмотреть сообщение
почему у вас одни циклы do{} while(); вложены в другие?
сами себя запутаете ими
да затем, если вы к примеру ответите da на вопрос который в базе выполнялся внешний цикл, и снова запрашивало id, а если ответите ни da ни net выполнялся внутренний цикл, и снова запрашивало вопрос.
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:10  [ТС]     оооочень странно не выполняется условие #6
Цитата Сообщение от Tiva Посмотреть сообщение
а зачем у вас в мейне вооообще эти строки?
если их стереть, и оставить просто cout и вызов функции, действие программы изменится чуть более, чем никак
это долго объяснять, но если ктото это добавил - значит оно нужно)
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:12     оооочень странно не выполняется условие #7
Цитата Сообщение от svk2140 Посмотреть сообщение
это долго объяснять, но если ктото это добавил - значит оно нужно)
если приведен не полный код, и там в цикле есть что-то еще, то возможно это и нужно. если это полный код программы, и туда ничего не будет добавлено - это абсолютно не нужные строки
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:12  [ТС]     оооочень странно не выполняется условие #8
Цитата Сообщение от 120° Посмотреть сообщение
добавьте еще несколько label-ов.и сам черт ноги поломает
мне так легче - так как нечего не сливается, и тому кто писал программу тое-сть мне, будет легче так как он знает где что находится. да и вроде тут нечего сложного нету)
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:15  [ТС]     оооочень странно не выполняется условие #9
Цитата Сообщение от Tiva Посмотреть сообщение
если приведен не полный код, и там в цикле есть что-то еще, то возможно это и нужно. если это полный код программы, и туда ничего не будет добавлено - это абсолютно не нужные строки
понимаешь я веду видио уроки и постоянно в эту прогу вкладываю новый материал. ДА я сам изучаю с++, но в этом весь и +, потому что если припадёт ученик другому ученику будет всё более чем понятно. да и сам преподающий ученик будет всё практиковать)
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:18     оооочень странно не выполняется условие #10
C++
1
2
3
4
5
6
7
  bool c = true; //присваиваем переменной некоторое значение
    if(c == true) //проверяем, то ли присвоил компилятор этой переменной, что мы написали, или сделал что-то своё?
    {
        cout << "w" << endl; // пользовательские действия
        loading(); // пользовательские действия
        c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
    }
ты не доверяешь своему компилятору?
и всё-таки это абсолютно лишние строки
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:27  [ТС]     оооочень странно не выполняется условие #11
Цитата Сообщение от 120° Посмотреть сообщение

Не по теме:


не знаю, не знаю. вот так смотришь на программу и ничего не понятно. один цикл, в нем еще один
ужас какой-то

тут сначала понять надо, зачем 1 вложен под другой! я тебе уже говорил перед этим сообщением

Добавлено через 24 секунды
Цитата Сообщение от nexen Посмотреть сообщение

Не по теме:

svk2140, эх, кто бы вам русский язык преподал бы..

тут же не форум по русскому языку)
metagalaxy
7 / 7 / 2
Регистрация: 18.02.2012
Сообщений: 61
05.07.2013, 20:27     оооочень странно не выполняется условие #12
Цитата Сообщение от svk2140 Посмотреть сообщение
bool c = true;
* * if(c == true)
* * {
* * * * cout << "w" << endl;
* * * * loading();
* * * * c = false;
* * }
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:29  [ТС]     оооочень странно не выполняется условие #13
Цитата Сообщение от Tiva Посмотреть сообщение
C++
1
2
3
4
5
6
7
  bool c = true; //присваиваем переменной некоторое значение
    if(c == true) //проверяем, то ли присвоил компилятор этой переменной, что мы написали, или сделал что-то своё?
    {
        cout << "w" << endl; // пользовательские действия
        loading(); // пользовательские действия
        c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
    }
ты не доверяешь своему компилятору?
и всё-таки это абсолютно лишние строки
неправильно Коментарии сделал
C++
1
c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
надо заменить на комментарий
C++
1
//при 2 использовании функции main функция loading не запускается
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:29     оооочень странно не выполняется условие #14
Цитата Сообщение от metagalaxy Посмотреть сообщение
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
а эти строки не находятся в цикле же. где там цикл то? это первые строки мейна
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:30  [ТС]     оооочень странно не выполняется условие #15
Цитата Сообщение от metagalaxy Посмотреть сообщение
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
я уже понял в чём проблема. но спасибо за ответ)
metagalaxy
7 / 7 / 2
Регистрация: 18.02.2012
Сообщений: 61
05.07.2013, 20:30     оооочень странно не выполняется условие #16
Цитата Сообщение от Tiva Посмотреть сообщение
а эти строки не находятся в цикле же. где там цикл то? это первые строки мейна
А зачем программе переходить к следующим строкам, если цикл постоянно true?
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:30     оооочень странно не выполняется условие #17
Цитата Сообщение от svk2140 Посмотреть сообщение
неправильно Коментарии сделал
C++
1
c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
надо заменить на комментарий
C++
1
//при 2 использовании функции main функция loading не запускается
я что-то не догоняю, но как мейн может отработать больше одного раза?
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 20:32  [ТС]     оооочень странно не выполняется условие #18
Цитата Сообщение от Tiva Посмотреть сообщение
я что-то не догоняю, но как мейн может отработать больше одного раза?
я же потом вызываю main)
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:32     оооочень странно не выполняется условие #19
Цитата Сообщение от metagalaxy Посмотреть сообщение
А зачем программе переходить к следующим строкам, если цикл постоянно true?
да где цикл то?
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    bool c = true;
    if(c == true)
    {
        cout << "w" << endl;
        loading();
        c = false;
    }
    ....
}
вот цитируемый тобою код из функции main
где
здесь
цикл?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2013, 20:33     оооочень странно не выполняется условие
Еще ссылки по теме:

Не выполняется условие вложенного цикла C++
C++ Не выполняется условие. Деление с остатком
Почему всегда выполняется условие? C++

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

Или воспользуйтесь поиском по форуму:
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
05.07.2013, 20:33     оооочень странно не выполняется условие #20
Tiva, автор повтороно вызывает функцию main();, глянь код через ctrl+f в браузере

Не по теме:

кто продал 100 грамм марихуаны автору?

Yandex
Объявления
05.07.2013, 20:33     оооочень странно не выполняется условие
Ответ Создать тему
Опции темы

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