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

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

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

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

03.02.2012, 20:53. Просмотров 366. Ответов 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.
как от туда выйти, когда элемент найден???
может у кого-нить есть идеи??? может какой-нить цикл еще придумать внутри ?...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2012, 20:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблема с выходом из цикла (C++):

Задержка перед выходом из программы - C++
Почему когда в С++ запускаешь программку с уравнением(вводишь значение х, у) то, когда должен появиться ответ, он появляется на долю...

Задача на цикл с выходом из середины - C++
Здравствуйте. Не могу разобраться с задачей. Как использовать while и break? Что означают эти +=, -=, --? По таблице - конец цикла, выход...

Вывести страну с выходом к морю и с наибольшей площадью - C++
Помогите пожалуйста. Программа должна выводить страну с выходом к морю и с наибольшей площадью.Но она не правильно выдает ответ. Я думаю...

Является ли отрицательное значение выходом за пределы массива - C++
Если написать такой код, то прога скомпилируется и запустится, но можно ли потом ждать проблем и неожиданных зависаний ? int i=-1; ...

Применение цикла if для определения простых чисел. If внутри цикла for - C++
Доброго времени суток, подскажите пожалуйста, в чем тут дело. С кодом все хорошо, все работает, просто я пытаюсь докопаться до сути и...

Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла. - C++
Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла.

6
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
03.02.2012, 20:55 #2
Цитата Сообщение от c1st Посмотреть сообщение
есть идеи
while

Не по теме:

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

0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
03.02.2012, 20:56 #3
Использовать goto или bool-переменную для проверки. Лучше второе.
1
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;
}
1
retmas
Жарю без масла
863 / 745 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
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: написали уже
1
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: написали уже

Не по теме:

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

0
c1st
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 14
03.02.2012, 21:14  [ТС] #7
все огромное спасибо! разобрался
0
03.02.2012, 21:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2012, 21:14
Привет! Вот еще темы с ответами:

вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле цикла - C++
вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле...

Нахождение отрицательного цикла в графе и вывод цикла - C++
Вот программа по нахождению отрицательного цикла в графе и вывод цикла void Floyd(int GR, int parents , int V) { int checking; int...

Дан проходной лабиринт с одним входом и выходом. Найти кратчайший путь для прохождения этого лабиринта - C++
Дан проходной лабиринт с одним входом и выходом. Найти кратчайший путь для прохождения этого лабиринта.

Выполните, пожалуйста, задание, при этом вместо оператора цикла while используйте оператора цикла do_while - C++
Используя оператор цикла while, напишите программу для вычисления ниже следующей суммы. // fkdj.cpp: определяет точку входа...


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

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

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