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

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

Войти
Регистрация
Восстановить пароль
 
c1st
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 14
#1

Проблема с выходом из цикла - C++

03.02.2012, 20:53. Просмотров 342. Ответов 6
Метки нет (Все метки)

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
#include <iostream>
using namespace std;
int main()
{
    int element, new_element;
    //имеется массив, в который я вначале ввожу элементы(простые числа)
    char massiv[3];
    for(int i = 0; i < 3; i++)
    {
        cin >> element;
        massiv[i] = element; 
    }
    //цикл for нужен для подсчета количество ошибок
    for(int error = 0; error < 3; error++)
    {
        //ввожу новый элемент
        cin >> new_element;
        // и начинаю проверять, есть ли этот новый элемент в уже имеющемся массиве
        for(int i = 0; i < 3; i++)
        {
            // если есть то делаю break
            if(massiv[i] == new_element)
            {
                cout << "Ура!" << endl ;
                break;
            }
        }
        //если элемент не найден,то error увеличивается на 1 и т.д пока не достигнет 3-х
    }
    cin.get();cin.get();
}
проблема в том, что когда элемент найден в массиве и делается break я все равно нахожусь цикле for который подсчитывает error.
как от туда выйти, когда элемент найден???
может у кого-нить есть идеи??? может какой-нить цикл еще придумать внутри ?...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,111
03.02.2012, 20:55     Проблема с выходом из цикла #2
Цитата Сообщение от c1st Посмотреть сообщение
есть идеи
while

Не по теме:

Цитата Сообщение от c1st Посмотреть сообщение
error = 0; error < 3; error++
ужос... Подсчитывать ошибки...

Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
03.02.2012, 20:56     Проблема с выходом из цикла #3
Использовать goto или bool-переменную для проверки. Лучше второе.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
03.02.2012, 21:00     Проблема с выходом из цикла #4
Короче фича с булеаном.
Обьявляешь в главном цикле булеансо значением false. Потом во внутреннем цикле если элемент находится, ты перед break; ещё поменяй значение этой переменной на true. А потом проверяй, если true - выходить из главного цикла.
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
#include <iostream>
using namespace std;
int main()
{
    int element, new_element;
    //имеется массив, в который я вначале ввожу элементы(простые числа)
    char massiv[3];
    for(int i = 0; i < 3; i++)
    {
        cin >> element;
        massiv[i] = element; 
    }
    //цикл for нужен для подсчета количество ошибок
    for(int error = 0; error < 3; error++)
    {
bool goaway=false;
        //ввожу новый элемент
        cin >> new_element;
        // и начинаю проверять, есть ли этот новый элемент в уже имеющемся массиве
        for(int i = 0; i < 3; i++)
        {
            // если есть то делаю break
            if(massiv[i] == new_element)
            {
                cout << "Ура!" << endl ;
goaway=true;
                break;
            }
        }
if(goaway) break;
        //если элемент не найден,то error увеличивается на 1 и т.д пока не достигнет 3-х
    }
    system("pause");
return 0;
}
retmas
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
03.02.2012, 21:00     Проблема с выходом из цикла #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        for(int error = 0; error < 3; error++)
        {
                //ввожу новый элемент
                cin >> new_element;
        bool good_in = false;
                // и начинаю проверять, есть ли этот новый элемент в уже имеющемся массиве
                for(int i = 0; i < 3; i++)
                {
                        // если есть то делаю break
                        if(massiv[i] == new_element)
                        {
                                cout << "Ура!" << endl ;
                good_in = true;
                                break;
                        }
                }
        if(good_in)
            break;
        }
upd: написали уже
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
03.02.2012, 21:02     Проблема с выходом из цикла #6
Цитата Сообщение от retmas Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        for(int error = 0; error < 3; error++)
        {
                //ввожу новый элемент
                cin >> new_element;
        bool good_in = false;
                // и начинаю проверять, есть ли этот новый элемент в уже имеющемся массиве
                for(int i = 0; i < 3; i++)
                {
                        // если есть то делаю break
                        if(massiv[i] == new_element)
                        {
                                cout << "Ура!" << endl ;
                good_in = true;
                                break;
                        }
                }
        if(good_in)
            break;
        }
upd: написали уже

Не по теме:

знакомая ситуация, с гонкой в топике)

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2012, 21:14     Проблема с выходом из цикла
Еще ссылки по теме:

C++ Остановка цикла do while
Является ли отрицательное значение выходом за пределы массива C++
C++ Вывести страну с выходом к морю и с наибольшей площадью
C++ Задача на цикл с выходом из середины
Замена цикла for на do while C++

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

Или воспользуйтесь поиском по форуму:
c1st
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 14
03.02.2012, 21:14  [ТС]     Проблема с выходом из цикла #7
все огромное спасибо! разобрался
Yandex
Объявления
03.02.2012, 21:14     Проблема с выходом из цикла
Ответ Создать тему
Опции темы

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