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

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

05.07.2013, 19:59. Показов 2692. Ответов 38
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2013, 19:59
Ответы с готовыми решениями:

Вывести на экран "условие выполняется", если все элементы массива положительные и "условие не выполняется", если это не так.
1)Тип массива вещественный.Число элементов 11. Вывести на экран &quot;условие выполняется&quot;, если все...

Если все элементы двумерного массива положительные, то вывести сообщение «УСЛОВИЕ ВЫПОЛНЯЕТСЯ», иначе «УСЛОВИЕ НЕ
3) Если все элементы двумерного массива положительные, то вывести сообщение «УСЛОВИЕ ВЫПОЛНЯЕТСЯ»,...

Написать λ -выражение, описывающее условие, которое проверяет список и выдает истину, если выполняется условие
Здравстуйте! Решите, пожалуйста, задачу на Lisp, не понимаю функциональный язык( А лабороторные...

Почему выполняется условие else, если выполнилось условие if?
При вводе буквы, которое есть в переменной word, по идеи, если такой буквы нету, то должно выдать...

38
12 / 10 / 0
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 20:04 2
почему у вас одни циклы do{} while(); вложены в другие?
сами себя запутаете ими
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:07  [ТС] 3
у меня вопрос можно ли както этот вопрос удалить? потому что я нашол ответ.
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
05.07.2013, 20:08 4
а зачем у вас в мейне вооообще эти строки?
если их стереть, и оставить просто cout и вызов функции, действие программы изменится чуть более, чем никак
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:09  [ТС] 5
Цитата Сообщение от 120° Посмотреть сообщение
почему у вас одни циклы do{} while(); вложены в другие?
сами себя запутаете ими
да затем, если вы к примеру ответите da на вопрос который в базе выполнялся внешний цикл, и снова запрашивало id, а если ответите ни da ни net выполнялся внутренний цикл, и снова запрашивало вопрос.
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:10  [ТС] 6
Цитата Сообщение от Tiva Посмотреть сообщение
а зачем у вас в мейне вооообще эти строки?
если их стереть, и оставить просто cout и вызов функции, действие программы изменится чуть более, чем никак
это долго объяснять, но если ктото это добавил - значит оно нужно)
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
05.07.2013, 20:12 7
Цитата Сообщение от svk2140 Посмотреть сообщение
это долго объяснять, но если ктото это добавил - значит оно нужно)
если приведен не полный код, и там в цикле есть что-то еще, то возможно это и нужно. если это полный код программы, и туда ничего не будет добавлено - это абсолютно не нужные строки
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:12  [ТС] 8
Цитата Сообщение от 120° Посмотреть сообщение
добавьте еще несколько label-ов.и сам черт ноги поломает
мне так легче - так как нечего не сливается, и тому кто писал программу тое-сть мне, будет легче так как он знает где что находится. да и вроде тут нечего сложного нету)
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:15  [ТС] 9
Цитата Сообщение от Tiva Посмотреть сообщение
если приведен не полный код, и там в цикле есть что-то еще, то возможно это и нужно. если это полный код программы, и туда ничего не будет добавлено - это абсолютно не нужные строки
понимаешь я веду видио уроки и постоянно в эту прогу вкладываю новый материал. ДА я сам изучаю с++, но в этом весь и +, потому что если припадёт ученик другому ученику будет всё более чем понятно. да и сам преподающий ученик будет всё практиковать)
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
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, не произошел бесконечный цикл
    }
ты не доверяешь своему компилятору?
и всё-таки это абсолютно лишние строки
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:27  [ТС] 11
Цитата Сообщение от 120° Посмотреть сообщение

Не по теме:


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

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

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

Не по теме:

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

тут же не форум по русскому языку)
0
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 константные истины получается.
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
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 не запускается
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
05.07.2013, 20:29 14
Цитата Сообщение от metagalaxy Посмотреть сообщение
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
а эти строки не находятся в цикле же. где там цикл то? это первые строки мейна
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:30  [ТС] 15
Цитата Сообщение от metagalaxy Посмотреть сообщение
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
я уже понял в чём проблема. но спасибо за ответ)
0
7 / 7 / 2
Регистрация: 18.02.2012
Сообщений: 61
05.07.2013, 20:30 16
Цитата Сообщение от Tiva Посмотреть сообщение
а эти строки не находятся в цикле же. где там цикл то? это первые строки мейна
А зачем программе переходить к следующим строкам, если цикл постоянно true?
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
05.07.2013, 20:30 17
Цитата Сообщение от svk2140 Посмотреть сообщение
неправильно Коментарии сделал
C++
1
c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
надо заменить на комментарий
C++
1
//при 2 использовании функции main функция loading не запускается
я что-то не догоняю, но как мейн может отработать больше одного раза?
0
89 / 1 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:32  [ТС] 18
Цитата Сообщение от Tiva Посмотреть сообщение
я что-то не догоняю, но как мейн может отработать больше одного раза?
я же потом вызываю main)
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
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
где
здесь
цикл?
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
05.07.2013, 20:33 20
Tiva, автор повтороно вызывает функцию main();, глянь код через ctrl+f в браузере

Не по теме:

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

1
05.07.2013, 20:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2013, 20:33
Помогаю со студенческими работами здесь

Удаление записи. Запрос выполняется , но странно
Вот такой код $delidthprov = mysql_query(&quot;SELECT * FROM coord WHERE 'ids'='$ids'&quot;); if...

Странно выполняется элементарный запрос INSERT
Добрый день друзья! Помогите советом пожалуйста. Есть маленькая БД. Выполняю элементарный...

Условие странно работает
Здраствуйте Помогите пожалуйста, я 2 день делаю скрипт, никак не могу сделать, неверное отображает...

Не могу понять почему так странно выполняется элемент кода
if (d.key.code == Mouse::Left) { g = k; if ((x = 1) &amp;&amp; (y = 1)) { board = 'x';...


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

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