- 1
- 2
- 3
#include <stdio.h>
amin()
{
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+143
#include <stdio.h>
amin()
{
такая вот незначительная опечатка.
+144
#include <stdio.h>
main()
{
char old[1000];
char new[1000];
int i; /*счетчик цикла длинны массива */
int z; /*счетчик нового массива */
int l; /*длинна массива */
int c; /*член массива */
l = 0;
z = 0;
printf
("программа удаления повторяющихся символов\n");
printf
("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
while ((c = getchar()) != EOF) {
old[l] = c;
l++;
}
old[l] = 0;
printf
("Введите символ, который нужно удадить как повторяющийся\n");
c = getchar();
for (i = 0; i < l; i++) {
if (old[i] != c) {
new[z] = old[i];
z++;
} else if (old[i] == c && old[i + 1] != c) { /*один символ из повторяющихся */
new[z] = old[i];
z++;
}
}
new[z] = 0;
printf("%s\n", new);
printf("*end");
}
Сорри за флуд, но тут форматирование полутше.
+144
#include <stdio.h>
main ()
{
char old[1000];
char new[1000];
int i; /*счетчик цикла длинны массива*/
int z; /*счетчик нового массива*/
int l; /*длинна массива*/
int c; /*член массива*/
l=0;
z=0;
printf("программа удаления повторяющихся символов\n");
printf("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
while((c=getchar()) != EOF)
{
old[l]=c;
l++;
}
old[l]=0;
printf("Введите символ, который нужно удадить как повторяющийся\n");
c=getchar();
for(i=0;i<l;i++)
{
if (old[i] != c)
{
new[z]=old[i];
z++;
}
else
if (old[i] == c && old[i+1] !=c) /*один пробел*/
{
new[z]=old[i];
z++;
}
}
new[z]=0;
printf("%s\n",new);
Четвертый день изучаю СИ, три дня из них ушло на написание этой програмки :-D
Шарики за ролики заехали, а потом наступил дзен и озарение.
<a href=http://mobisvit.com/iphone-f003-p-17.html >РєРѕРїРёСЏ f003</a>
+135
#include <stdio.h>
#include <stdlib.h>
int main()
{
static int val = 1;
while(val /* vanish */ --> 0)
{
(++ /* do black magic ! */ val) /* very black magic !!! */ ++;
(val == 2 ? printf("WTF ??!") : val =- 1);
}
if(val<-15)
return ((1<0?/* magic */100500:500?233?33?321?2223?0:0:0:0:0:0));
return ((!!val==!!false)?val ==- 100500?5:1:main());
}
Из разряда синтаксиса языка
+136
#include <stdio.h>
#define declare_generic_func(x)\
x add_##x(x x1,x x2) \
{\
return x1+x2;\
}
#define generic_func(x,name) name##_##x
declare_generic_func(int);
declare_generic_func(double);
int main()
{
int a,b;
double ad,bd;
printf("Enter two integer numbers: ");
scanf("%d%d",&a,&b);
printf("Result: %d\n",generic_func(int,add)(a,b));
printf("Enter two real numbers: ");
scanf("%lf%lf",&ad,&bd);
printf("Result: %lf\n",generic_func(double,add)(ad,bd));
return 0;
}
Дженерики для труЪ сишников.
+100
f = fopen(file_name, "w");
if (!f) {
f = fopen(file_name, "w+");
if (!f)
logprintfl(EUCAWARN, "Cannot create %s!\n", file_name);
else {
len = fileno(f);
if (len > 0)
fchmod(len, S_IRUSR|S_IWUSR);
}
}
Суровые калифорнийские парни сурово создают суровые файлы...
+139
inline Gdiplus::Color colorrefToGdiColor(COLORREF col, char alpha)
{
return (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::RedMask) >> Gdiplus::Color::RedShift)) << Gdiplus::Color::BlueShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::GreenMask) >> Gdiplus::Color::GreenShift)) << Gdiplus::Color::GreenShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::BlueMask) >> Gdiplus::Color::BlueShift)) << Gdiplus::Color::RedShift) | (static_cast<unsigned long>(alpha) << Gdiplus::Color::AlphaShift);
}
Тихо себя ненавижу. Слава Б-г'у это всё выкидывается.
+136
recordSize=logicalRecordLength;
BytesToRead=cnt*recordSize;
records=cnt;
while ( ((pos + BytesToRead)>dataSize)&&records )
{
BytesToRead = --records * recordSize;
}
Не думал, что у нас в коде встречу нечто явно похожее на пример №2 из статьи "Индусский код" на Луркморе.
Ну и стоит добавить, что реально logicalRecordLength всегда равен 1.
+141
int AnalizingHeaderLine(char* HeadLine)
{
if(HeadLine==NULL) return -1;
if(strlen(HeadLine)==0) return 0;
if(!strncmp(HeadLine,"HTTP/",5))
ProcessStatusHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "date:",5))
ProcessDateHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "server:",7))
ProcessServerHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "last-modified:",14))
ProcessLastModHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "content-type:",13))
ProcessContTypeHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "content-length:",15))
ProcessContLenHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "pragma:",7))
ProcessPragmaHL(HeadLine);
else if(!strncmp(strlwr(HeadLine), "Connection",10))
ProcessConnectHL(HeadLine);
else printf("Unknown header line: %s\n", HeadLine);
return strlen(HeadLine);
}
int ProcessStatusHL(char* HeadLine)
{
short MinVer, MajVer;
char ResultStr[32];
char Num;
short Code;
Num = sscanf(HeadLine, "HTTP/%d.%d %d %s", &MinVer, &MajVer, &Code, ResultStr);
if(Num!=3 && Num!=4)
{ printf("Error status string\n");
return -1;
}
return Code;
}
int ProcessDateHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
int ProcessServerHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
int ProcessLastModHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
int ProcessContTypeHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
int ProcessContLenHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
int ProcessPragmaHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
int ProcessConnectHL(char* HeadLine)
{
printf("%s\n",HeadLine);
return 0;
}
CGI. Обработка HTTP-заголовков. Rev. 1.0
+131
#include <stdio.h>
void factorization(int num, int show) {
int num1 = num;
int n = 2;
while ( n*n <= num1 ) {
if ( num%n == 0 ) {
num = num / n;
if ( show )
printf( "%d\n", n );
} else {
n ++;
}
}
}
int main() {
int i = 0;
while ( i < 1000 ) {
factorization(999999, 0);
i ++;
}
return 0;
}
Опубликовано в одной из ссылок с http://habrahabr.ru/blogs/ruby/48952/ (если надо, точную ссылку найду позже).
Код раскладывает число на простые множители тупым перебором делителей. Мало того, что этот код медленный, так он иногда последний множитель пропускает. Одновременно и ошибка, и скорость исправляются так:
- while ( n*n <= num1 ) {
+ while ( n <= num ) {
Неожиданно, правда?