Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2015, 20:49   #11
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Есть еще одна вещь, не про циклы, а так... Условие в операторе if может быть не одно, а несколько однотипных можно объединять, типа:
Если а=b и a=c и а=d и а=e тогда Одинаковые числа вводить нельзя!
Если а=b и а=с то логично предположить, что b=c и нет смысла это проверять. Верхнее условие сильно перегружено и может уместиться в один if.
Суть вроде уловил. А как будет и на c++?
В любом случае, мою проблему это не решает. Я могу сделать без цикла - добавить как условие что если числа равны, то выводит сообщение что так нельзя, и программа закрывается. А вот чтобы он заново предложил ввести числа - никак Уже весь день на это потратил....ну и чутка на другие темы

Цитата:
Сообщение от Utkin Посмотреть сообщение
Если а=b и а=с то логично предположить, что b=c и нет смысла это проверять. Верхнее условие сильно перегружено и может уместиться в один if (а может стать условием выход из цикла while, если хорошенько подумать над этим).
а это мысль. программерских знаний тут не требуется, стыдно что сам не додумался. щас перекодю
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене

Последний раз редактировалось Аватар; 01.06.2015 в 20:58.
WildWhiteRabbit вне форума Ответить с цитированием
Старый 01.06.2015, 20:52   #12
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Вот здесь написано много и лучше чем я смог бы ответить:
http://programmersclub.ru/07/
(читайте все, но Ваша конкретика где-то в середине)

Про циклы: http://cppstudio.com/post/6458/
Первое - я не могу все время быть Вашим слюнявчиком, берете гугл и бьете там свой вопрос. Миллионы до Вас эволюционировали сходным образом, а значит вероятность ответа на Ваш вопрос имеется порядка 99%.
Второе - на мой личный весьма пристрастный и однобокий взгляд Вы использовали не тот цикл.
Я бы делал так:
for ( ; ; )
{
вводим числа
если числа не равны между собой то break (Ищите сами что это значит)
Одинаковые числа вводить нельзя!
}
Но это исключительно моя философия.

Не пишите несколько постов подряд, это не чат и утомляет. Есть кнопка Правка около Ваших постов, в течение некоторого времени можно дописывать свои сообщения.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 01.06.2015 в 21:01.
Utkin вне форума Ответить с цитированием
Старый 01.06.2015, 21:31   #13
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Автор, что ты хотел добиться этим фрагментом?:
Код:
int a, b, c, d, e;

    cout << "Vvedite 5 raznih chisel: " << endl;
    cin >> a >> b >> c >> d >> e;

    if (a == b)
        if (a == c)
            if (a == d)
                if (a == e)
                    if (b == c)
                        if (b == d)
                            if (b == e)
                                if (c == d)
                                    if (c == e)
                                        if (d == e)
                                            cout << "Odinakovie chisla vvodit nelzya!";
                                            continue;
Я не понял что ты хотел сделать. Может быть ты фигурные скобки поставить забыл ? - если да - то куда?

Вобще массив тебе нужен.
rrrFer вне форума Ответить с цитированием
Старый 01.06.2015, 21:39   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Я не понял что ты хотел сделать. Может быть ты фигурные скобки поставить забыл ? - если да - то куда?
Нее... он просто проверяет, что все 5 чисел различны.
p51x вне форума Ответить с цитированием
Старый 01.06.2015, 22:12   #15
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

До массивов еще не дошел.
Цитата:
for ( ; ; )
{
вводим числа
если числа не равны между собой то break (Ищите сами что это значит)
Одинаковые числа вводить нельзя!
}
УткинНепонятно, что указывать после второй ; - тут же указывает как изменяется значение переменной. А у меня оно никак не изменяется. Мне кажется с for более сложный вариант. p51x, как считаешь, с while вариант проще?

ПС: Вроде я понял. Дайте полчаса
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене

Последний раз редактировалось WildWhiteRabbit; 01.06.2015 в 22:22. Причина: так надо
WildWhiteRabbit вне форума Ответить с цитированием
Старый 01.06.2015, 22:54   #16
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию Хм..

Значит с циклом разобрался, если вводишь одинаковые значения он указывает на это и запрашивает заново. НО, почему то если вводишь разные значения, то он не пишет результат. Подскажите, где ошибка?
Код:
#include <iostream>

using namespace std;

int main()
{
    int a, b, c;


    cout << "Vvedite 3 raznih chisla: " << endl;
    cin >> a >> b;

    while ( a == b )
    {
        cout << "Vvedite raznie chisla!" << endl;
        break;
    }
    cin >> b >> c;
    while ( b == c )
    {
        cout << "Vvedite raznie chisla!" << endl;
        break;
    }
    if (a > b)
        if (a > c)
            cout << "Naibolshee chislo: " << a << endl;
    if (b > a)
        if (b > c)
            cout << "Naibolshee chislo: " << b << endl;
    else
            cout << "Naibolshee chislo: " << c << endl;
    return 0;
}
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Старый 02.06.2015, 01:07   #17
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

ИМХО, начинать надо было с формулировки. Чую, автоу нужно совсем не то, чего он добивается.
Как звучит оригинал задания?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 02.06.2015 в 01:12.
min@y™ вне форума Ответить с цитированием
Старый 02.06.2015, 04:42   #18
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Код:
cin >> a >> b; // ввел 2 числа
cin >> b >> c; // ввел еще 2 числа
А просил у юзера 3 числа xD.

Код:
while ( a == b )
    {
        cout << "Vvedite raznie chisla!" << endl;
        break;
    }
While замени на if и break убери - ничего не изменится. Но врядли ты этого хотел.

Код:
while ( b == c )
Не знаю что ты хочешь сделать, но у тебя может быть a = c, ты не проверяешь это.
rrrFer вне форума Ответить с цитированием
Старый 02.06.2015, 06:14   #19
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
УткинНепонятно, что указывать после второй ; - тут же указывает как изменяется значение переменной.
Я создаю тебе бесконечный цикл, выйти из которого можно только спецкомандой break, а условием выхода из цикла является неравенство чисел между собой. Берешь гугл и пишешь бесконечный цикл с++ там есть вариант с твоим любимым while. Суть процесса - мы будем бесконечно мучить пользователя вводом чисел если он вводит одинаковые числа. Один цикл и одно условие. Я думаю можно переходить к следующему участку программы, а не бесконечно переливать из пустого в порожнее.
Чтобы у Вас не возникало проблем подобного рода, сначала прорабатывайте алгоритм на русском языке. Так как задачки пока у Вас маленькие можете писать их где-нибудь в Блокноте или на бумажке. Потом когда задачи станут сложней придется вспомнить о декомпозции, структуре программ и держать элементы алгоритма в голове (так как все записывать будет громоздко и утомительно).
Забегая вперед - чтобы дальше написать красиво весьма желательно использовать массивы и/или функции.

ЗЫ. Все равно логика программы дичайшая. Даже если нет в условии что числа могут быть равны, для нахождения большего/меньшего достаточно чтобы отличалось только одно число из 5. То есть если явного искусственного барьера на то чтобы именно все числа были различны нет, то задача на сравнение больше/меньше вполне себе решаема, даже если 4 числа равны между собой, а 5-е больше или меньше. Очевидно мне тоже придется взывать к начальной постановке задачи или как в школьных сочинениях, что хотел раскрыть автор своим произведением?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 02.06.2015 в 06:42.
Utkin вне форума Ответить с цитированием
Старый 02.06.2015, 10:55   #20
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
ИМХО, начинать надо было с формулировки. Чую, автоу нужно совсем не то, чего он добивается.
Как звучит оригинал задания?
Примерно так: Я хочу понять как сделать так, чтобы при выполнении определенного условия, комп начинал запрашивать данные заново. Вот что мне нужно. Из первого сообщения это должно хорошо просматриваться.
to rrrFer
Цитата:
А просил у юзера 3 числа xD.
я сразу проверяю 2 числа на вшивость, и если вшей нет, то доспрашиваю третье. Чем плох такой вариант?
Уткин, ну вот вы очень много не по делу говорите. преподавательских методов явно не знаете. сюда, кстати, по гуглу пришел.
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте ! в чем проблема,почему почему время исполнения операций не работает ? ion leahu Помощь студентам 6 23.11.2014 19:36
Почему не перегружаем оператор = Студ Общие вопросы C/C++ 8 21.03.2014 12:45
Оператор continue. AnnaKom Помощь студентам 2 20.01.2012 12:20
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
Оператор continue Golovastik Общие вопросы C/C++ 10 20.07.2009 14:19