- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#include <stdio.h>
struct Gost {
int x = 42;
};
int main () {
Gost gst;
printf("%d\n", gst); // 42
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
#include <stdio.h>
struct Gost {
int x = 42;
};
int main () {
Gost gst;
printf("%d\n", gst); // 42
}
http://ideone.com/fB26cs
Уб ли это?
+2
// https://habr.com/ru/post/466985/
// о каррировании в крестоговне
// По сути это каррирующее говно просто складывает куда-то хуйню, а потом целиком ее в функцию призывает.
// Ну т.е. на Си можно написать дрисню вида
int shit(int a, int b, int c, int d)
{
return a*(b+c*d);
}
// И вот каррирование такой дрисни это как если б я сделал структуру
struct shit_arguments
{
int a;
int b;
int c;
int d;
};
// И потом бы с конца заполнял это говно
struct shit_arguments;
shit_arguments.d = 13;
shit_arguments.c = 666;
shit_arguments.b = 1488;
shit_arguments.a = 42;
// и при полном заполнении этого говна просто б вызвал функцию
// подставив туда накопившееся говно
int somecrap = shit(shit_arguments.a, shit_arguments.b, shit_arguments.c, shit_arguments.d);
// именно так эта крестовая дрисня и работает, она не может произвести частичное вычисление
// не может сделать функцию с частично вычисленной дрисней в ней на основе частично переданной хуйни
// если я например в функцию shit захочу частично подставить аргументы b,c,d как 1,2,3 то у меня не получится функции вида
int shit_b1_c2_d3(int a)
{
return a*(7); // 1+2*3 = 7
}
// Нихуя подобного не будет. А если нихуя подобного нет, нахуй это бесполезное дерьмо вообще надо?
// В крестах никак нельзя на основе каких-то готовых функций сгенерить
// видоизмененные функции с частично сделанными вычислениями
// Никакой нормальной рефлексии нет, просто какие-то тупые кривые костыли к сишечке налепили
// И это программисты?
+2
public static void Init()
{
LetterOrder = new Dictionary<char, int>
{
{'A', 0},
{'B', 1},
{'C', 2},
{'D', 3},
{'E', 4},
{'F', 5},
{'G', 6},
{'H', 7},
{'I', 8},
{'J', 9},
{'K', 10},
{'L', 11},
{'M', 12},
{'N', 13},
{'O', 14},
{'P', 15},
{'Q', 16},
{'R', 17},
{'S', 18},
{'T', 19},
{'U', 20},
{'V', 21},
{'W', 22},
{'X', 23},
{'Y', 24},
{'Z', 25},
};
}
C#-макака не умеющая, ни в char - 'A' ни в статические конструторы (и еще много чего: см. https://www.codingame.com/training/easy/encryptiondecryption-of-enigma-machine/solution?id=10246815)
+3
bool Object::DeleteDouble(void* data)
{
Element* rc = Head;
BANKCLIENT* asd = (BANKCLIENT*)rc->Data;
int dbl;
Element* rc1 = Head;
BANKCLIENT* asd1 = (BANKCLIENT*)rc1->Data;
while ((rc != NULL) && (rc->Data != data))
{
asd = (BANKCLIENT*)rc->Data;
dbl = asd->NumScore;
while ((rc1 != NULL) && (rc1->Data != data))
{
asd1 = (BANKCLIENT*)rc1->Data;
if (dbl == asd1->NumScore)
{
std::cout << "Дублирующийся элемент удалён" << std::endl;
Delete(rc1);
goto flag;
}
}
}
flag:
system("pause");
return rc;
}
Некая svetlana.kotik раскрывает секреты односвязных списков.
+5
public enum Status : byte
{
Disabled = 0,
Enabled
}
Мопед не мой, прислала боевая подруга из Канады, реальный проект за недетские деньги.
Лаконичности була не хватило, лучше свой енум сделать, чем писать bool IsEnabled.
KISS.
+1
template < typename CType >
void list < CType >::sorted_push(CType val, long int key)
{
if (head) {
// Создаём контейнер и помещаем в него полученное значение
container < CType > *new_cont;
container < CType > *tmp = head;
new_cont = new container < CType >;
new_cont->set_key(key);
new_cont->set_cargo(val);
while ((tmp != tail) && (key > (tmp->get_key())))
tmp = tmp->get_next();
if ((tmp == tail) && (key > (tmp->get_key()))) { // Если выполнились одновременно два условия в цикле
new_cont->set_next(tmp->get_next()); // Вставляем в самый конец
new_cont->set_past(tmp);
tmp->set_next(new_cont);
tail = new_cont;
} else {
new_cont->set_next(tmp);
new_cont->set_past(tmp->get_past());
if ((tmp->get_past()) != NULL)
tmp->get_past()->set_next(new_cont);
if (tmp == head)
head = new_cont;
tmp->set_past(new_cont);
}
if (empty) {
empty = false;
tail = head;
}
} else {
container < CType > *new_cont;
new_cont = new container < CType >;
new_cont->set_key(key);
new_cont->set_cargo(val);
new_cont->set_next(head);
tail = head = new_cont;
empty = false;
}
}
template < typename CType > CType queue < CType >::pop()
{
container < CType > *tmp = list<CType>::head;
if (tmp == NULL) {
std::cerr <<
"Стек пуст! Стек возвращает мусор! ";
list<CType>::empty = true;
} else {
CType tmpval = list<CType>::head->get_cargo();
// Переходим к следующему элементу
list<CType>::head = list<CType>::head->get_next();
if (list<CType>::head == NULL)
list<CType>::empty = true;
delete tmp;
return tmpval;
}
}
template < typename CType > CType stack < CType >::pop()
{
container < CType > *tmp = list<CType>::tail;
if (tmp == NULL) {
std::cerr <<
"Очередь пуста! Возвращается мусор! ";
list<CType>::empty = true;
} else {
CType tmpval = list<CType>::tail->get_cargo();
// Переходим к предыдущему элементу
if (list<CType>::tail != list<CType>::head)
list<CType>::tail = list<CType>::tail->get_past();
else
list<CType>::empty = true;
delete tmp;
return tmpval;
}
}
пострелял себе в ногу
+2
Давайте устроим холиворчик - скриптинг на винде против скриптинга на линупсе, или баш против помершелла
+144
//перевод даты в timestamp
function strtotimestamp($time) {
$tmp = explode(' ', $time);
$date = explode('.', $tmp[0]);
$hours = explode(':',$tmp[1]);
$tmp = mktime($hours[0], $hours[1], 0, $date[1], $date[0], $date[2]);
return $tmp;
}
когда нужно быстро сделать работающее решение, а времени на чтение гугла нет
+2
#if defined(_WIN32) || defined(_WIN64)
size_t size = message.size();
size_t size_buf = 1015;
size_t pointer = 0;
for (int i = 0; i < (size/size_buf) + 1 ; i++){
/*Делаем для красивого вывода. Пробел всегда один байт.
*Потому сматываем указатель буфера до первого пробела.*/
int buf = size_buf;
while (message[pointer+buf] != ' ')
buf--;
/*Здесь лечится косяк MinGw, буфер принимает по 1к байтов.
*Лечение производим создавая дополнительные буферы.*/
istringstream ss(message.substr(pointer,buf) );
std::cout << ss.rdbuf();
pointer += buf;
}
#else
std::cout << message;
#endif
Похоже плохая сборка MinGw.
http://govnokod.ru/13094
−16
#include <iostream>
#include <string>
using namespace std;
/*
*/
int change_word(const int begin_pos, string &words, int k, char c)
{
int pos = begin_pos;
int char_count = 0;
bool replaced = false;
while(pos < words.length() && isalpha(words[pos]))
{
char_count++;
if(char_count == k && !replaced)
{
words[pos] = c;
replaced = true;
}
pos++;
}
return pos;
}
void change_words(string &words, int k, char c)
{
int i = 0;
while(i < words.length())
{
if(isalpha(words[i]))
{
i = change_word(i, words, k, c);
}
else
{
i++;
}
}
}
int main()
{
char c = '>';
int k = 0;
string words = "Length of the substring to be copied";
cout << "enter number:";
cin >> k;
change_words(words, k, c);
cout << "changed text: " << words << endl;
return 0;
}
лаба на с++, заменить в тексте к-тую букву на символ с.