- 1
- 2
- 3
- 4
- 5
long long int temp;
temp=a-b;
if (temp<0) temp=temp*(-1);
.....
r = b*(2^g);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+140
long long int temp;
temp=a-b;
if (temp<0) temp=temp*(-1);
.....
r = b*(2^g);
Из работ студентов.
Первый фрагмент - взятие по модулю.
Второй - вызвал вопрос "почему неправильно работает возведение в степень?".
+98
enum { SIZEOF_INT_AS_STR = sizeof("4294967295,")-1 };
Что это? :-O
+137
int str_fpos(char * in_str,char chr1)
{
int i=0;
char * pch = strchr(in_str,chr1);
while (pch != NULL)
{
i = pch-in_str;//+1;
break;
}
return i;
}
if-ом пользуются только трусы!!!
+130
int i,j;
char alph[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Подстановка по таблице 1
int S_there[26][8]={{1,0,0,1,1,0,0,1},{1,0,0,0,1,0,0,0},{1,0,1,0,1,0,1,0},{0,0,1,1,0,0,1,1},{1,1,1,0,0,0,0,1},
{1,0,0,0,0,1,1,1},{1,1,1,1,1,1,1,1},{1,1,0,1,0,0,1,0},{0,1,1,1,1,0,0,0},{1,1,0,0,0,0,1,1},{1,0,1,0,0,1,0,1},{0,1,0,0,1,0,1,1},
{0,0,0,1,1,1,1,0},{0,1,0,1,0,1,0,1},{1,1,0,0,1,1,0,0},{0,0,0,1,0,0,0,1},{1,1,0,1,1,1,0,1},{1,0,1,1,0,1,0,0},{0,0,1,0,1,1,0,1},
{0,0,0,0,0,0,0,0},{0,1,1,0,0,1,1,0},{0,1,0,0,0,1,0,0},{1,1,1,1,0,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,0,1,0,0,1},{0,0,1,0,0,0,1,0}};
char str[]="THIISATESTFILEFORCHECKINGCYPHERMODULE";
int len=strlen(str);
int num[len];//массив с порядковыми номерами
int vector[len][8];//массив с ОТ, переведённым в двоичные вектора длины 8
for (i=0; i< len; i++)//Присваиваем каждой букве порядковый номер (а=0,b=1 и т.д.)
{
num[i]=((strchr(alph, str[i])-alph)% 26 + 0x01);
num[i]--;
}
for (i=0; i<len; i++)//Меняем букву на двоичный вектор длины 8 согласно порядковому номеру
{
int number=num[i];//счётчик текста
for (j=0; j<8; j++)
{
vector[i][j]=S_there[number][j];
}
}
for (i=0; i<len; i++)//Вывод на экран ОТ
{
for (j=0; j<8; j++)
{
printf("%u",vector[i][j]);
}
printf(" %c\n",str[i]);
}
Нашёл в своей очень старой лабе...Нужно было буквы на входе преобразовать в двоичные вектора (например, а=10011001, b=10001000 и т.д.) ну и дальше ковыряться с этими векторами...почему я категорически не захотел тогда использовать case - хз :)))
+134
/* страйкер, почини trim */
while (1)
{
file_ptr start;
int i;
long c;
/* See if the next `string_min' chars are all graphic chars. */
tryline:
if (stop_point && address >= stop_point)
break;
start = address;
for (i = 0; i < string_min; i++)
{
c = get_char (stream, &address, &magiccount, &magic);
if (c == EOF)
{
free (buf);
return;
}
if (! STRING_ISGRAPHIC (c))
/* Found a non-graphic. Try again starting with next char. */
goto tryline;
buf[i] = c;
}
Раз уж вспоминаем дрѣвния говны
Written by Richard Stallman <[email protected]>
and David MacKenzie <[email protected]>.
+134
зависающие маллок )))
void * __cdecl malloc(size_t size)
{
// No fail malloc!
void *pMem;
do {
pMem=HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size);
if(pMem==NULL) Sleep(2000);
} while(pMem==NULL);
return pMem;
}
void * __cdecl operator new( unsigned int cb )
{
// No fail new!
void *pMem;
do {
pMem=HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,cb);
if(pMem==NULL) Sleep(2000);
} while(pMem==NULL);
return pMem;
}
что хотел аффтар ? !!! аццкий сотона
int GetCfgBool(char *cfgstr,const char *key)
{
return GetCfgNum(cfgstr,key)?TRUE:FALSE;
}
аффтар застрелись !!!
char *GetCfgStr(char *cfgstr,const char *key)
{
char *str=cfgstr;
// Skip past name of options list
while(*str!='\0') str++;
str++;
// Walk through options
while(*str!='\0') {
int nLen;
if(*str=='B') {
nLen=1;
str+=2;
if(strncmp(str,key,strlen(key))==0) break;
} else if(*str=='S') {
str+=2;
nLen=atoi(str);
while(*str!=']') str++;
str+=2;
if(strncmp(str,key,strlen(key))==0) break;
} else if(*str=='N') {
str+=2;
char *pb;
pb=str;
while(*str!=',') str++;
nLen=(DWORD)str-(DWORD)pb;
str++;
pb=str;
while(*str!=']') str++;
int nLen2=(DWORD)str-(DWORD)pb;
if(nLen2>nLen) nLen=nLen2;
str+=2;
if(strncmp(str,key,strlen(key))==0) break;
}
while(*str!='=') str++;
str++;
str+=(nLen+1);
}
if(*str!='\0') {
while(*str!='=') str++;
return str+1;
}
return NULL;
}
исходники BO2K гениально !!!))
и как не стыдно ЭТО распространять
http://www.bo2k.com/
+133
// for cdio:
#include <cdio.h>
#include <cdio_unconfig.h> # remove *all* symbols libcdio defines
// Add back in the ones you want your program
#include <config.h>
But now what about the problem that there are common preprocessor symbols in config_cdio.h that an application may want to define in a different manner, like PACKAGE_NAME?
For this, there is yet another header, <cdio/cdio_unconfig.h>.
+127
typedef struct _xjmp_stru {
unsigned long Ebp;
unsigned long Ebx;
unsigned long Edi;
unsigned long Esi;
unsigned long Esp;
unsigned long Eip;
} xjmp_stru;
typedef int xjmp_buf[6];
__declspec(naked)
int __cdecl xsetjmp(xjmp_buf)
{
__asm
{
mov edx, [esp+4]
mov [edx], ebp
mov [edx+4], ebx
mov [edx+8], edi
mov [edx+12], esi
mov [edx+16], esp
mov eax, [esp]
mov [edx+20], eax
xor eax, eax
ret
}
}
__declspec(naked, noreturn)
void __cdecl xlongjmp(xjmp_buf, int)
{
__asm
{
mov edx, [esp+4]
mov ebp, [edx]
mov ebx, [edx+4]
mov edi, [edx+8]
mov esi, [edx+12]
mov eax, [esp+8]
test eax, eax
jne __
inc eax
__:
mov esp, [edx+16]
add esp, 4
mov edx, [edx+20]
jmp edx
}
}
int dummy(xjmp_buf jbuf)
{
volatile int jk = 8;
if (jk)
xlongjmp(jbuf, 2);
else
return 7;
}
int main()
{
xjmp_buf jbuf;
if (xsetjmp(jbuf))
{
puts("excpt");
return -1;
}
dummy(jbuf);
puts("great work");
return 0;
}
экая хренотень
+125
#include <stdio.h>
#define MAXLINE 1000 /* максимальная длина строки в потоке */
int getline(char line[], int maxline);
main()
{
int len; /* длина текущей строки */
char line[MAXLINE]; /* текущая введённая строка */
while((len = getline(line, MAXLINE)) != (-1))
printf("%s", line);
system("PAUSE");
return 0;
}
/* getline: считывает строку в s, удаляет пробелы и знаки табуляции в конце строки, возвращает её длину. Удаляет полностью пустые строки */
getline(char s[], int lim)
{
int c, i;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == EOF)
return (-1); /* конец ввода */
else if (c == '\n') {
while(s[i-1] == ' ' || s[i-1] == '\t') /* "удаление" пробелов и знаков табуляции в конце строки */
--i;
if (i > 0) { /* если строка непустая */
s[i] = '\n';
++i;
}
s[i] = '\0';
return i;
}
}
Задача: убирать в конце каждой строки лишние пробелы и знаки табуляции, удалять полностью пустые строки.
Решение: при считывании строки вида "abc_____\n" на выходе получаем массив символов "abc\n\0___" (пробелы в конце). Печатаем строки по мере поступления, профит.
Говнокод или нормально?
+137
if (p)
free(p);
/* ... */
if (p)
q = realloc(p, size);
else
q = malloc(size);
немного классики.
из сырцов pdftohtml.