Двач, помоги. Программа работает хорошо, но есть одно но. если ввести вместо числа какой-нибудь символ, букву и тп, запускается бесконечный цикл. Где я накосячил и как это исправить. С меня как всегда
Чтобы не было божественного goto можно обернуть всю хуйню в while. Но это будет уёбищно. Зато будет видна степень долбоебизма секты свидетелей Дейкстры.
Я посмотрю на вас, когда вам сунут код, в котором используется goto и ты, сука, должен возвращаться хуй пойми куда. Вам дали циклы, проверку, флажки - нет, хочу ссаное goto.
>>103772577 Ты просто так решил подряд все, что знаешь писать? Да, выдаст true. Дальше что? Рассматривается конкретный пример, он ворвался, все мудаки,а он Дартаньян. Nahooy pooteshestvooy.
Goto, я у мамы Бейсик? Нахуя использовать эту ебучую конструкцию? Не привыкай к этому дерьму ананас, базарю, спасибо скажешь. Все можно сделать из for и if
>>103772677 > Как будто буква - это не число > Для cin вероятно есть разница > Для остальных операторов точно нет разницы Маня, у тебя памяти на 3 секунды последних хватает?
>>103772450 >Чем вас goto не устроил? Тем что они долбоебы, ведущиеся на эмоциональные статьи Гуру и неспособные отличать научное обоснование от истерики.
>>103772816 Ах да, не ебу как там у майкрософтовского компилятора не реализовано, но если не найдет макрос INT_MAX, то под ним скрывается вот эта конструкция.
>>103768597 (OP) Вот лучше попробуй решить практическую задачу для стажера. Даны целые числа n и m (1<=n<=1018, 2<=m<=105), необходимо найти остаток от деления n-го числа Фибоначчи на m.
>>103773476 >по-твоему, здесь нужен эксепшн Защиту от долбоебов вроде опа >если ввести вместо числа какой-нибудь символ, букву и тп, запускается бесконечный цикл.
>>103773689 [code] int[] x = new int[10]; FillWithRandom(x); int y = 0; for (int i = 0; i < x.Length; i++) { if (x == 0) { YaEbalTvoyuMamashu(); break(); } } y++; [/code]
>>103773960 >Но такой долбоёб как ты вряд ли поймет датамайнинг, алгоритмы классификации и прочее. Вообще-то я сам занимаюсь датамайнингом, алгоритмами классификации и прочим. Почему мне и ржачно с ёбаных биологов.
goto используют только какие-то ебанутые совковые фрики, на старых ебучих впк, вроде сухого(где такие ж припизднутые на сях пишут), на нормальной работе за такое по ебалу надают и выгоняют.
Нахуй вообще про го ту рассказывают студентам? Это должно быть запретное знание уровня повареной книги анархиста, малеус малификариума и некрономикона.
>>103774168 goto дохуя используется в ядре линуха и винде. Да и вообще в реально сложных задачах. В вебе например я такого не встречал. Наверное поэтому много "программистов" которые могут много рассказывать о том что goto не нужен. В их сраном вебе и правда не нужен.
>>103774290 Ну бля, нам на 2 курсе асм преподавали. Вот лично я профит не увидел, а одногруппник сейчас низкоуровневые дрова пилит и получает не слабо.
>>103768597 (OP) Ты просто говноед, я просто не понимаю, каким нужно быть долбоебом, чтобы писать такое говно. Даже если ты первый день программируешь, писать настолько хуево, просто невозможно. Сравнивая остаток от деления на 3 это ты что четно число проверяешь? То есть 3 это четное число? или 9? Остаток от деления на 1 всегда ноль блять идиот, поэтому у мтебя и бесконечный цикл. К*0 это что за хуйня такая? Короче либо ты супер зеленый, либо эпичный долбоеб, я бы такую хуйню даже специально анписать не смог.
>>103774200 Еще один дегенерат. Надо увеличить переменную y на единицу если в массиве нет нулей. Адептам секты Дейкстры приходится объяснять что делает программа как гуманитариям.
>>103773689 Табы лень расставлять, уебок? Давай разберем тобой написанное, логика у тебя ебанутая: создаешь массив из 10 интов, рандомно заполняешь его, пробегаешь, и если там нет нуля, тогда инкрементруешь y. Теперь вопрос, нахуя? Не проще ли вначале выставить y в единицу, и при нахождении нуля выставить его в ноль? Результат будет тот же. Говнологика порождает говнокод, а не goto.
>>103774452 Табы в HTML не работают, а тег [code] не сработал в этой ёбаной борде. Индентация изначально там была.
>Теперь вопрос, нахуя? Не проще ли вначале выставить y в единицу, и при нахождении нуля выставить его в ноль? Результат будет тот же. Говнологика порождает говнокод, а не goto. ОК, это упрощенная задача поэтому так получилось. В оригинале вместо инкрементации надо было вызвать функцию, довольно сложную. Просто я функцию для простоты заменил на инкремент.
>>103774452 > Не проще ли вначале выставить y в единицу, и при нахождении нуля выставить его в ноль? О, Великий Гуру, поведай яви тайное знание черни во тьме заблудшей - нахуя?
>>103775514 Точнее даже вредно. Потому что при преобразовании в машинный код JMP есть и так. А этот сраный goto вносит путаницу и немного кала в штаны ОПа.
>>103775402 Первый вариант правильный, да. Я ожидал его увидеть сразу, но не думал что среди готофобов столько дебилов, хотя этого и следовало ожидать от них. Мне он не нравится лишней переменной и лишней проверкой if после цикла. В if желательно еще break поставить чтобы цикл раньше разорвать. В оригинальной задаче массив был большой. Второй вариант тормознее. В реальной задаче имела значение скорость. Хотя там разница не критичная конечно, но тем не менее.
>>103775514 Вроде гоуту преобразуется в лонгджамп вместо жмп что бьёт по производительности. Но ты молодец что вспомнил про это. А первый ответ запутывает логику программы.
>>103775514 Вот ты удивишься, когда узнаешь, что любой if, switch, break и т.д. становится джампом. А уж какие конструкции собирает Борланд лучше совсем не видеть.
>>103775760 >Мне он не нравится Долбоёб ничего не слышал про читабельность кода? Всем похуй на то, что тебе не нравиться. Родина требует делать так, чтобы это можно было поддерживать. Рефакторинг твоего говнокода к этому бы и пришел.
>>103775553 первый вариант костыль: инициализировать бул как фолз, в цикле при нахождении нуля выставить его на тру, и потом по этому булу либо инкрементировать y либо нет.
второй вариант кошерный: сразу же проверить массив через std::find, если 0 не найден, тогда итератор вернет std::end(a), что мы и проверяем через if, и при выполнении условия инкрементируем y.
>>103775916 >Долбоёб ничего не слышал про читабельность кода? Мой код читабельнее. И еще раз для придурков, раз с первого раза не понимаете: в той задаче код должен работать быстро, а не быть красивым.
>>103775947 >второй вариант кошерный: сразу же проверить массив через std::find, если 0 не найден, тогда итератор вернет std::end(a), что мы и проверяем через if, и при выполнении условия инкрементируем y. Я умею читать код. Мне не понятно нафига?
>>103775760 >Второй вариант тормознее Я даже не могу представить, в каких условиях использование std::fing может повлиять на скорость. Ты там что ли нейронные сети пишешь?
>>103775402 int[] x = new int[10]; FillWithRandom(x); int y = 0; // bool find = false // семён for (int i = 0; i < x.Length; i++) { if (x == 0) { y++; break; } // find = true // ты че } // if (!find) y++; // ебанутый?
если надо всего инкремент сделать, нахуй вы дополнительные переменные делаете? совсем поехали
>>103776541 да и вообще, ебани говна дважды, если там внутренний функционал, то любое дерьмо что было до сектора skip в исходном примере можно было бы запихать в долбанный if (x == 0), это блять не так уж и сложно
найди ситуацию, когда нельзя было бы этого сделать, мудило
>>103776915 int[] x = new int[10]; FillWithRandom(x); int y = 0; for (int i = 0; i < x.Length; i++) { if (x == 0) { break; } if (i == x.Length - 1) y++; } }
>>103777300 Твою мать, это действительно должно заработать. Ну хоть что-то новое. Но лишний if прямо в цикле это совсем херня на самом деле, он будет повторен хуй знает сколько раз. Зато гото нет и можно не беспокоиться что назовут ламером.
>>103777619 Ну шут его знает, там много способов для решения этой задачи. На мой взгляд "goto" недалеко ушел, да и зачем мне инкремент игрека мне все равно не ясно. =)
>>103777753 это короч сгенерированый ANTLRом синтаксический анализатор. походу псевдокод >>103777927 те как сложить в цикле 2+2 двач объяснить способен, а как что посложнее-пиздуй в гугл, маня? впрочем как всегда
>>103777650 Пиздишь про производительность, а сам каждый раз высчитываешь адрес элемента массива, лох. Сразу видно дебила-велосипедиста с goto и прочей хуйней. Правильный ответ здесь с std_find
>>103768597 (OP) Ну йобана, всю программу заключаешь в цикл (if -1000000 < n < 1000000) {Код} else return 0; (или не n, хз какая у тебя там переменная на входе, код не читал)
>>103778253 Маньк, не проецируй, мне сказали избавиться - я избавился. Я могу таких решений мильярд наделать, не было задачи, кроме как избавится от гоатсе.
int[] x = new int[10]; FillWithRandom(x); int y = 0; for (int i = 0; i < x.Length; i++) { if (x [ i ] == 0) { x [ 0 ] = 0; break; } } if (x [ 0 ] != 0) { y++; }
>>103778505 От гото избавиться можно, но любое избавление будет понижать скорость.
>>103778031 >а сам каждый раз высчитываешь адрес элемента массива, лох. Сразу видно дебила-велосипедиста с goto и прочей хуйней. Правильный ответ здесь с std_find На шарпе программа была.
>>103768597 (OP) Мимокрокодил. Goto поебень, не юзай. Видел долбаёба-любителя этого говна, его вся команда ненавидела.
Плюсобляди любят всякую хуйню, по мне, так лучше хуйнуть переменную с заебатым именем для читаемости, чем потом команде мозги выносить. Не гонитесь за байтиками поцоны, всем уже давно похуй.
>>103779275 Он долбоёб просто какой-то. У него какой-то комплекс неполноценности, связан с производительностью. >>103779275 >От гото избавиться можно, но любое избавление будет понижать скорость. >C# >понижать скорость >C#
>>103779275 >Т.е. все методы из коробки ты шлешь на хуй и имплементируешь самостоятельно? Некоторые методы из коробки действительно тормозные и мне приходилось писать свои.
Насчет goto - есть пара хрестоматийных примеров его использования - выход из вложенного цикла, например, при определенной структуре (когда exit из функции вызвать нельзя).