2ちゃんねる版 邪悪なCコードコンテスト
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG邪悪なCコードコンテスト(IOCCC)ホームページ
http://www.au.ioccc.org/
サンプルコード
(1987年度「最悪なスタイル賞」受賞作品 by Spencer Hines)
#include <stdio.h>
#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{char *ogto, tgoo[80];FILE *ogot; int oogt=0, ootg, otog=79,
ottg=1;if ( togo== ottg) goto gogo; goto goog; ggot:
if ( fgets( tgoo, otog, ogot)) goto gtgo; goto gott;
gtot: exit(); ogtg: ++oogt; goto ogoo; togg: if ( ootg > 0)
goto oggt; goto ggot; ogog: if ( !ogot) goto gogo;
goto ggto; gtto: printf( "%d goto \'s\n", oogt); goto
gtot; oggt: if ( !memcmp( ogto, "goto", 4)) goto otgg;
goto gooo; gogo: exit( ottg); tggo: ootg= strlen(tgoo);
goto tgog; oogo: --ootg; goto togg; gooo: ++ogto; goto
oogo; gott: fclose( ogot); goto gtto; otgg: ogto= ogto +3;
goto ogtg; tgog: ootg-=4;goto togg; gtgo: ogto= tgoo;
goto tggo; ogoo: ootg-=3;goto gooo; goog: ogot= fopen(
toog[ ottg], "r"); goto ogog; ggto: ogto= tgoo; goto
ggot;}
0067デフォルトの名無しさん
NGNGそれは/bin/false。
0068デフォルトの名無しさん
NGNGvoid main()
{
HANDLE fmo=CreateFileMapping((void*)0xFFFFFFFF,NULL,PAGE_READWRITE,0, 0xFFFF,"TESTFMO");
LPVOID ptr;
for(;;)ptr=MapViewOfFile(fmo,FILE_MAP_READ, 0, 0, 0);
}
0069デフォルトの名無しさん
NGNGforより激しく邪悪だと思う。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGreturan 0;
}
0076デフォルトの名無しさん
NGNGdafualt: printf("実行されません。");
}
0077デフォルトの名無しさん
NGNGvoid func1(void);
void func2(void);
int main(void)
{
memcpy(func1, func2, (char *)func2 - (char *)func1);
func1();
return 0;
}
void func1(void)
{
printf("これはfunc1()です。\n");
}
void func2(void)
{
printf("これはfunc2()です。\n");
}
0078デフォルトの名無しさん
NGNGこれはfunc2()です。
と表示されるの?
0079デフォルトの名無しさん
NGNGそれは、/bin/trueって釣られたのか?
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG確かに。昔はPATH=.:/bin:…(ドットが目立たないので全角にした)
とか平気でやってたもんな。でもって、
cc -o test test.c
とかやって、/bin/testと干渉して。
0084デフォルトの名無しさん
NGNGhttp://www.au.ioccc.org/1988/westley.c
初めて見たとき感動した
0085デフォルトの名無しさん
NGNGそのはずだがWindowsでBorland-C++使うと実行時エラーになる。
どうもコードセグメントが読み取り専用属性になってるらしい。
昔のDOSでは動いた。
0086デフォルトの名無しさん
NGNG最近のOSとコンパイラなら、まず、実行時エラーでしょう。
昔のUnixではどうだったんだろうか。
0087デフォルトの名無しさん
NGNGもし、あったり作れちゃったりできる人はメール送ってください。
0088デフォルトの名無しさん
NGNG今すぐ氏ね
0089デフォルトの名無しさん
NGNG大爆笑。おまえセンスあるよ。
0090デフォルトの名無しさん
NGNGあるけど面倒くさい
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG110番にかかる奴ならあるよ。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG{
*(char*)NULL = 0;
}
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGsystem("kill 1");
}
0098デフォルトの名無しさん
NGNGわらた
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGそれを言うなら、kill(1, SIGTERM);
0101デフォルトの名無しさん
NGNG何げに
/* iは1〜3のこと */
というコメントをつけてどこかのアフォが使っていそうでもある。
0102デフォルトの名無しさん
NGNGmain()
{
printf("1000 + 1000 = %d\n", add(1000, 1000));
}
add(int x, int y)
{
return 0 == x ? y : add(x - 1, y) + 1;
}
gcc -Wall -o baka baka.c
baka.c:2: warning: return-type defaults to `int'
baka.c: In function `main':
baka.c:3: warning: implicit declaration of function `printf'
baka.c:3: warning: implicit declaration of function `add'
baka.c:4: warning: control reaches end of non-void function
baka.c: At top level:
baka.c:7: warning: return-type defaults to `int'
./baka
1000 + 1000 = 2000
echo $?
19
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG>>103
仕様では未定義だろうが、このコンパイラでは、そうなっているようだ。
0105デフォルトの名無しさん
NGNGそういえば、会社で適当に書いたカナローマ字変換は邪悪だったな…
0106デフォルトの名無しさん
NGNG僕にはCで実装する能力はありません。
0107デフォルトの名無しさん
NGNG関数の中で別の関数を宣言したりとかは、昔だからしかたがない。
やっていることも、普通だ。
しかし、このスペースと改行の使い方は何だ?
/*----------fcopy.c-----*/
#include <stdio.h>
main( argc, argv )
int argc; char *argv[];
{ FILE *fp1, *fp2, *fopen(); char c;
if(argc==1) while((c=getchar())!=EOF)
putchar(c);
else { if(argc>=2)
{ fp1=fopen(*++argv,"r");
if(fp1==NULL)
printf("Input file error!\n");
else if(argc==2)
while((c=getc(fp1))!=EOF)
putchar(c); }
if(argc>=3)
{fp2=fopen(*++argv, "w");
if(fp2==NULL)
printf("Output file error!\n");
else if(fp1!=NULL)
while((c=getc(fp1))!=EOF)
putc(c,fp2); fclose(fp2); }
} }
0108デフォルトの名無しさん
NGNGとしてあるのに
FILE *fopen();
があるのは仕方ないのか?
0109デフォルトの名無しさん
NGNG1984年当時は、ヘッダ = インタフェースという考え方が希薄で、
stdio.hには、FILEの定義程度のことしか書かれていなかったんじゃ
ないか? つまり、しかたなかったと思われめ。
0110デフォルトの名無しさん
NGNG何故、kill(1, SIGKILL) にしない ?
0111デフォルトの名無しさん
NGNGそんな、あんた、乱暴な。
0112デフォルトの名無しさん
NGNGint main()
{
int a,b,c,d,e,f,g;
int x=10000000;
for(a=1; a<x;a++)
{
for(b=1;b<x;b++)
{
for(c=1;c<x;c++)
{
for(d=1;d<x;d++)
{
for(e=1;e<x;e++)
{
for(f=1;f<x;f++)
{
for(g=1;g<x;g++)
}}}}}}}
0113デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int a,b,c,d,e,f,g;
int x=100;
for(a=1; a<x;a++)
{
for(b=1;b<x;b++)
{
for(c=1;c<x;c++)
{
for(d=1;d<x;d++)
{
for(e=1;e<x;e++)
{
for(f=1;f<x;f++)
{
for(g=1;g<x;g++)
{
printf("%d、%d、%d、%d、%d、%d\n",a,b,c,d,e,f,g);
}}}}}}}
return 0;
}
0114デフォルトの名無しさん
NGNG何がしたいんだ?
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG#define piyo int
#define hoge main
#define net void
#define stat {
#define end }
#define minasan printf
piyo hoge(net)
stat
minasan("Hello world");
return 0;
end
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGナカジマカオルだったっけ?
0122デフォルトの名無しさん
NGNGぬるぽ
0123デフォルトの名無しさん
NGNGナカジマアケミ
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGしかも、Z80 のアセンブリ言語な。
0127デフォルトの名無しさん
NGNG01281
NGNG#define"おわり"{
#define"中心"main
#define"もし"if
#define"くりかえす"for
#define"代入"=
#define"等しい"==
#define"たす"+
#define"整数"int
01292
NGNG#define"ここまで")
#define"戻り値"return
#define"出力" printf
#define"、";
#define"一つたす"++
#define"改行"\n
//#define追加#include
#include<stdio.h>
整数 中心 ここから ここまで はじめ
整数 i、
くりかえす ここから i 代入 0 、i 等しい 10 、i 一つたす ここまで
出力 ここから "テストテスト 改行" ここまで
もどりち i、
おわり
01302
NGNGVC++じゃ無理....
0131デフォルトの名無しさん
NGNG#define のシンボルは、C/C++ の命名規則による。
どうしてもそのコードを通したいなら、日本語に対応したプリプロセッサを
自分で書く事だ。
0132デフォルトの名無しさん
NGNGなかなか面白いことやるねあんた
0133デフォルトの名無しさん
NGNG処理内容が邪悪、ってのはNG?(おい
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGファイルシステム破壊とか本当に悪質なものはダメでしょ。
0136デフォルトの名無しさん
NGNG>>135
マジレスありがと。
# 悪意がなくても、バグでファイルシステムが逝っちゃうケースも
# ありそうな気がするけど・・・。
0137デフォルトの名無しさん
NGNGtitle ""
return
loop
end
0138137
NGNGreturn→repeat
…HSPって難しいね。
0139C
NGNGJPerlならほぼ全部日本語のプログラミング言語です
0140デフォルトの名無しさん
NGNG#define these this
#define those this
return *these;
0141デフォルトの名無しさん
NGNGここにある7th Edition UNIXの/bin/shのようなコードかな
Pascalとは微妙に違うがマクロの正しい使い方だな
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>142
0144デフォルトの名無しさん
NGNG↑に、>>1の while 版があるなも。
0145デフォルトの名無しさん
NGNG#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{char *ogto, tgoo[80];FILE *ogot;int oogt=0, ootg, otog=79,ottg=1;enum{start,ggot,gtot,ogtg,
togg,ogog,gtto,oggt,gogo,tggo,oogo,gooo,gott,otgg,tgog,gtgo,ogoo,goog,ggto,end}to = start;
while(to != end){while(to == start){while(to == start && togo== ottg) to = gogo;
while(to == start)to = goog;}while(to == ggot){while(to == ggot && fgets( tgoo, otog, ogot))
to = gtgo;while(to == ggot)to = gott;}while(to == gtot){exit();to = ogtg;}while(to == ogtg){
++oogt; to = ogoo; }while(to == togg){while(to == togg && ootg > 0)to = oggt;
while(to == togg)to = ggot; }while(to == ogog){while(to == ogog && !ogot) to = gogo;
while(to == ogog)to = ggto;}while(to == gtto){printf( "%d to = \'s\n", oogt); to = gtot;}
while(to == oggt){while(to == oggt && !memcmp( ogto, "goto", 4)) to = otgg;
while(to == oggt)to = gooo; }while(to == gogo){exit(ottg);to = tggo;}while(to == tggo){
ootg= strlen(tgoo);to = tgog;}while(to == oogo){--ootg;to = togg;}while(to == gooo){
++ogto;to = oogo;}while(to == gott){fclose(ogot);to = gtto;}while(to == otgg){ogto = ogto +3;
to = ogtg;}while(to == tgog){ootg -= 4;to = togg;}while(to == gtgo){ogto = tgoo;to = tggo;}
while(to == ogoo){ootg -= 3;to = gooo;}while(to == goog){ogot = fopen(toog[ottg], "r");
to = ogog;}while(to == ggto){ogto = tgoo;to = ggot;}}}
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{
char *ogto, tgoo[80];
FILE *ogot;
int oogt=0, ootg, otog=79,ottg=1;
enum
{
start, ggot, gtot, ogtg, togg, ogog, gtto, oggt, gogo, tggo,
oogo, gooo, gott, otgg, tgog, gtgo, ogoo, goog, ggto, end
}
to = start;
while(to != end)
{
while(to == start)
{
while(to == start && togo== ottg) to = gogo;
while(to == start) to = goog;
}
while(to == ggot)
{
while(to == ggot && fgets( tgoo, otog, ogot)) to = gtgo;
while(to == ggot)to = gott;
}
0148デフォルトの名無しさん
NGNG{
exit();
to = ogtg;
}
while(to == ogtg)
{
++oogt;
to = ogoo;
}
while(to == togg)
{
while(to == togg && ootg > 0)to = oggt;
while(to == togg)to = ggot;
}
while(to == ogog)
{
while(to == ogog && !ogot) to = gogo;
while(to == ogog)to = ggto;
}
while(to == gtto)
{
printf( "%d to = \'s\n", oogt);
to = gtot;
}
0149デフォルトの名無しさん
NGNG{
while(to == oggt && !memcmp( ogto, "goto", 4)) to = otgg;
while(to == oggt)to = gooo;
}
while(to == gogo)
{
exit(ottg);
to = tggo;
}
while(to == tggo)
{
ootg= strlen(tgoo);
to = tgog;
}
while(to == oogo)
{
--ootg;
to = togg;
nullpo;
}
while(to == gooo)
{
++ogto;to = oogo;
}
0150デフォルトの名無しさん
NGNG{
fclose(ogot);
to = gtto;
}
while(to == otgg)
{
ogto = ogto +3;
to = ogtg;
}
while(to == tgog)あああ
{
ootg -= 4;
to = togg;
}
while(to == gtgo)
{
ogto = tgoo;
to = tggo;
}
0151デフォルトの名無しさん
NGNG{
ootg -= 3;
to = gooo;
}
while(to == goog)
{
ogot = fopen(toog[ottg], "r");
to = ogog;
}
while(to == ggto)つかれた
{
ogto = tgoo;
to = ggot;
}
}
}ぼぼぼーぼ
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>149
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>155
0157デフォルトの名無しさん
NGNGすげぇよ。尊敬。
0158デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>157
0159157
NGNGお前には失望したよ。
0160デフォルトの名無しさん
NGNGもう遅いぬるぽ
0161デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>160
0162仕様書無しさん
NGNGhttp://pumpkinnet.to/ranking/words/
0163デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>162
0164山崎渉
NGNG0165山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0166デフォルトの名無しさん
NGNGhttp://www.kmonos.net/wlog/19.html#_1751020514
#include <stdio.h>
#include <stdlib.h>
typedef int o; o bomb; o main(o); struct t { t& operator==(o){ ++bomb&7
?printf(">"),system(gets(b)):main(bomb); return *this;} char b[999]; } K;
int main
( o) {{ }
K ==0==0==0==0==0==0==0==0== bomb
/\
■ このスレッドは過去ログ倉庫に格納されています