Няшная / Говнокод #26317 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
void push_stack(node *topPTR, int value) {
	node newPTR = malloc(sizeof(Stack));

	if (newPTR != NULL) {

		newPTR->alpha = value;
		newPTR->nxtPTR = *topPTR;
		*topPTR = newPTR;
	}
	else {

		puts("error");
	}
}

void push_stack_2(node_2 *topPTR_2,  double value) {

	node_2 newPTR = malloc(sizeof(Stack_2));

	if (newPTR != NULL) {

		newPTR->alpha = value;
		newPTR->nxtPTR_2 = (void *)  *topPTR_2;
		*topPTR_2 = newPTR;

	}
	else {

		puts("error");
	}
}

int pop(node *fix) {
	
	int  value = 0;
	node temp = *fix;
	value = (*fix)->alpha;
	*fix = (*fix)->nxtPTR;
	free(temp);
return value;
}

double pop_2(node_2 *fix) {
	double  value = 0;
	node_2 temp = *fix;
	value = (*fix)->alpha;
	*fix = (void *)   (*fix)->nxtPTR_2;
	free(temp);
return value;
}

char check_stack(node data) {
	return data->alpha   ==  0  ;
}

int isOperator(char c) {
	return c == '/' || c == '*' || c == '-' || c == '+' || c == '^' ;
}

int precedence(char data_1, char  data_2) {
		
		switch(data_1){
		case '(':	
		return -1;
		case '^':
	
			if(data_2 == '^' ){
					return    0;
			} 
			 else if (data_2 == '*' || data_2 == '/' || data_2 == '+' || data_2 == '-'   ){
			 	
			 }
	 		
	 	case 	'/' : 
        case 	'*':        
			
			if(data_2 == '^' ){
					return    -1;
				} 
					else if( data_2 == '/' || data_2 == '*'     ){
						return    0;
					}	
				
			else if( data_2 == '+' || data_2 == '-'     ){
						return     1;
		
		}
		
		case  '+':
		case  '-':		
		
		if(data_2 == '^'  || data_2 == '/' || data_2 == '*'        ){
			return    -1;
				} 
		else{
			return     0;
			 }
		}
}

calc 3

Запостил: tyrin tyrin, (Updated )

Комментарии (77) RSS

    • Не могу знать, задача из Дейтелов, из чего был пример из того и липил ))))
      Ответить
  • Никогда не понимал, как можно так распидорасить форматирование. Эпилептический припадок у автора чтоли случился?
    Ответить
    • Причём в начале всё более-менее прилично: отбивка табами, в начале блока одна пустая строка, return, выровненный по объявлению функции (выглядит весьма неплохо, кстати)… А потом реально пошёл пиздец.
      Ответить
      • Как у Владимира Сорокина, в начале каждого рассказа всё более-менее прилично: соблюдается грамматика, даже есть смысл (выглядит весьма неплохо, кстати)... А потом (примерно с середины рассказа) идёт пиздец.
        Ответить
        • Особенно доставил рассказ "Дорожное происшествие"...
          Интересно, дочкам он читает свои рассказы?
          Ответить
    • Такое встречается на ранних этапах программирования. Нажимать кнопку "скопмилировать" человек уже научился, а форматировать код - ещё нет. Ещё и табы с пробелами мешает там, где их нельзя мешать. Где-то пытается форматировать код, где-то плюёт на это, где-то вставляет куски кода из интернетов, где-то случайно нажимает на пробел, но не удаляет, т.к. всё равно компилируется.
      Ответить
      • Вообще похоже на смесь табов с пробелами. Это часто приводит к порче форматирования, ибо в разных редакторах (даже в экземплярах одного редактора, но с разными настройками) таб может соответствовать разному количеству пробелов. А есть слишком «интеллектуальные» редакторы, которые на своё усмотрение могут табы заменять пробелами или пробелы заменять табами, поэтому восстановить оригинал невозможно.
        Ответить
        • ГК не ест табы и пробелы, если это не начало и конец поста. Так что видно, что смесь есть наверно только в одном случае (строка 75), в остальных случаях автор просто не совладал с отступами. Может быть, ему сказали их пофиксить, но до конца занятия осталось слишком мало времени (об этом говорят пробелы перед закрывающейся скобкой), и теперь его отправили на пересдачу.
          Ответить
          • Кстати, строка 75 довольно интересна: в ней ровно восемь пробелов, что соответствует двум «общепринятым» табам (остальные кейсы выровнены именно так). Очень похоже на кривую работу редактора. А ещё в строках 74 и 75 после «case» идёт один пробел и один таб. Интересно, что это такое…
            Ответить
  • > puts("error");

    Заебись обработка ошибок. Вывели ошибку и ебашим дальше.
    Ответить
    • А вдруг puts не из стандартной библиотеки, а собственная функция, которая прерывает программу?
      Ответить
    • Вот вы не поверите, второй год ищу Сикорда, пока что все крутят пальцем у виска ))))
      Ответить
      • С Хавербеке таких проблем нет. Именно поэтому я за Хавербеке.
        Ответить
          • Авторы книг «Анскильное программирование».
            Ответить
            • А давайте организуем школу анскилла. Для начала попробуем составить учебную программу.
              Ответить
                • Искусство анскилирования.

                  * 10 алгоритмов O(n!), которые вам следует знать
                  * Делаем N+1 запросы с любым ORMом легко и просто
                  * Как спрятать ошибку
                  * malloc(1), или как не использовать стек без необходимости
                  * Висячий указатель и двойное освобождение в одной функции!
                  * Дабл эскейп и XSS на одной странице
                  * Тотал Коммандер и деплоймент приложений
                  * \"SQL инъекции\" -- это просто
                  * Искусство UB: пишем код, который почти всегда работает
                  * "своими словами": как написать одно и тоже бизнес знание семь раз в разных местах системы по разному
                  * почтовая рассылка из UI треда
                  Ответить
                    • состоит из двух уроков: удаляем кавычку и удаляем слово DELETE.

                      Bonus:
                      * регулярные выражения: универсальный инструмент для парсинга HTML
                      Ответить
                      • * составляем regexp для проверки валидности email
                        Ответить
                        • 10 имен верхего уровня, которые могут быть в емейл
                          Ответить
                  • А курс кобенаторики и теории вореантности будет вести мастер дзенский питушенский!
                    Ответить
                      • Должно, должно. Оно же прямо в stdout срёт без фильтрации по уровням и т.п.
                        Ответить
                        • Сразу видно, что ты скилловой, и не можешь вести курсы.
                          Ответить
                        • Это же отладка, а не запись в лог. И не тесты.
                          Нашёл баг - закомментировал/удалил эту питушню.
                          Ответить
                      • а как еще можно анскильно отлаживать?
                        Ответить
                        • Это действитель анскильно. Правильно "var_dump" + "xdebug".
                          Ответить
                        • * рандомизированный метод внесения правок до достижения работоспособности
                          Ответить
                          • Сразу видно, что ты анскильный.
                            ± 1 driven development
                            Ответить
                          • "чото без этого глючит": учимся объяснять коллегам, зачем мы прибавили четыре к этой переменной
                            Ответить
                            • Можно не объяснять, а просто оставить комментарий:
                              // Вася, не трогай это выражение.
                              // Я пробовал изменять последнее слагаемое.
                              // С другими значениями глючит.
                              Ответить
                          • Волшебно. Ещё добавить "нажатие кнопки компиляции, пока не заработает".
                            Ответить
                            • Смех смехом, а при синтезе прошивки для FPGA так иногда делают, если совсем чуть-чуть не удаётся влезть в тайминги.

                              Причём сейчас там есть параметр с seed'ом, а раньше тупо переменные переставляли местами пока псевдорандом не ляжет как надо...
                              Ответить
                        • Похоже, лучше ответа веб-макаки ничего не придумаешь.

                          Поиск на стековерфлоу и форумах кусков кода и вставка их в случайные места параллельно с удалением кода из случайного места. И обязательно - удалить и добавить сразу несколько строчек между двумя конпеляциями-запусками, чтобы не было понятно, что именно заставило код заработать/сломаться.
                          Ответить
                          • Я ненавижу тебя за то, что ты не оправдал надежд моих, оказавшись коллаборантом. Презренное существо.
                            Ответить
                          • и сразу закоммитить с комментарием "fix"
                            Ответить
                  • "прокликай там основные кейсы": проверяем приложение без юнит-тестирования
                    Ответить
                    • Гость 8, не возникает ли у тебя мысли о том, что ты - нахуй не нужное существо? Слейся, не подымай людям нервы.
                      Ответить
                    • Экспресс способ отладки приложений посредством выкатывания тысячи строк кода на форум с комментрием "чото не работает, не скажете в чем дело?"
                      Ответить
                  • "чото тупило вчера, покрути там настройки": учимся формулировать задачи для айти отдела
                    Ответить
                    • "if user.town == 'Niznevartovsk and price == 94": управление сложной бизнес-логикой в коде
                      Ответить
                      • LEFT JOIN tovar on kod like %lozhki;22%;
                        SET NAME="<B><a href="shurup.php?q=42">шуруповёрт</a></B>"


                        курс архитектуры баз данных
                        Ответить
                  • * Стабилизируем асинхронные приложения при помощи sleep / timeout.
                    Ответить
              • >рандомизированный метод внесения правок до достижения работоспособности

                Это называется "генетические алгоритмы"
                Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8