トップページ⇒tech
576コメント162KB

2ちゃんねる版 邪悪なCコードコンテスト

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
邪悪なCコードコンテストの2ちゃんねる版やりませんか?

邪悪な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
>>66
それは/bin/false。
0068デフォルトの名無しさんNGNG
#include <windows.h>
void 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デフォルトの名無しさんNGNG
配列の確保できる量を超えるとか。
forより激しく邪悪だと思う。
0070デフォルトの名無しさんNGNG
向こうの人ってこういうコンテスト好きだよなあ
0071デフォルトの名無しさんNGNG
int hoge[100][100][100][100][100];
0072デフォルトの名無しさんNGNG
int hoge[INT_MAX];
0073デフォルトの名無しさんNGNG
邪悪だ・・・
0074デフォルトの名無しさんNGNG
どこが?
0075デフォルトの名無しさんNGNG
main() {
returan 0;
}
0076デフォルトの名無しさんNGNG
switch (i) {
dafualt: printf("実行されません。");
}
0077デフォルトの名無しさんNGNG
こういうのが動く処理系が少なくなったな。

void 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
>>77
これはfunc2()です。
と表示されるの?
0079デフォルトの名無しさんNGNG
>>75
それは、/bin/trueって釣られたのか?
0080デフォルトの名無しさんNGNG
void print_roman_numerals(int i) { while (i-- > 0) putchar('I'); }
0081デフォルトの名無しさんNGNG
test
0082デフォルトの名無しさんNGNG
for(i=0;i<10;i++) i--;
0083デフォルトの名無しさんNGNG
>>81
確かに。昔はPATH=.:/bin:…(ドットが目立たないので全角にした)
とか平気でやってたもんな。でもって、
cc -o test test.c
とかやって、/bin/testと干渉して。
0084デフォルトの名無しさんNGNG
OCCCといえば、これが好き
http://www.au.ioccc.org/1988/westley.c

初めて見たとき感動した
0085デフォルトの名無しさんNGNG
>>78
そのはずだがWindowsでBorland-C++使うと実行時エラーになる。
どうもコードセグメントが読み取り専用属性になってるらしい。
昔のDOSでは動いた。
0086デフォルトの名無しさんNGNG
>>85
最近のOSとコンパイラなら、まず、実行時エラーでしょう。
昔のUnixではどうだったんだろうか。
0087デフォルトの名無しさんNGNG
スレ違いだと思うんですけど携帯用のウィルスってある(できる)んですかねぇ〜?
もし、あったり作れちゃったりできる人はメール送ってください。
0088デフォルトの名無しさんNGNG
>>87
今すぐ氏ね
0089デフォルトの名無しさんNGNG
>>87
大爆笑。おまえセンスあるよ。
0090デフォルトの名無しさんNGNG
>>87
あるけど面倒くさい
0091デフォルトの名無しさんNGNG
>>87 邪悪の意味が違う。つか、君の心が邪悪
0092デフォルトの名無しさんNGNG
携帯用のウィルスかどうか知らんが、メールを開くだけで
110番にかかる奴ならあるよ。
0093デフォルトの名無しさんNGNG
main(){while(1)malloc(1);}
0094デフォルトの名無しさんNGNG
main(){ main(); }
0095デフォルトの名無しさんNGNG
int main()
{
*(char*)NULL = 0;
}
0096デフォルトの名無しさんNGNG
*(char*)rand() = 0;
0097デフォルトの名無しさんNGNG
main(){
system("kill 1");
}
0098デフォルトの名無しさんNGNG
>>94
わらた
0099デフォルトの名無しさんNGNG
無限再帰w
0100デフォルトの名無しさんNGNG
>>97
それを言うなら、kill(1, SIGTERM);
0101デフォルトの名無しさんNGNG
>80 ワラタ。
何げに
/* iは1〜3のこと */
というコメントをつけてどこかのアフォが使っていそうでもある。
0102デフォルトの名無しさんNGNG
cat baka.c
main()
{
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デフォルトの名無しさんNGNG
printf() の戻り値が返るのか
0104デフォルトの名無しさんNGNG
sage。
>>103
仕様では未定義だろうが、このコンパイラでは、そうなっているようだ。
0105デフォルトの名無しさんNGNG
ん〜
そういえば、会社で適当に書いたカナローマ字変換は邪悪だったな…
0106デフォルトの名無しさんNGNG
女神転生の悪魔召喚プログラムは邪悪だと思いますが、
僕にはCで実装する能力はありません。
0107デフォルトの名無しさんNGNG
Cプログラミング / 石田晴久. -- 岩波書店, 1984.3より。
関数の中で別の関数を宣言したりとかは、昔だからしかたがない。
やっていることも、普通だ。
しかし、このスペースと改行の使い方は何だ?

/*----------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
#include <stdio.h>

としてあるのに

FILE *fopen();

があるのは仕方ないのか?
0109デフォルトの名無しさんNGNG
>>108
1984年当時は、ヘッダ = インタフェースという考え方が希薄で、
stdio.hには、FILEの定義程度のことしか書かれていなかったんじゃ
ないか? つまり、しかたなかったと思われめ。
0110デフォルトの名無しさんNGNG
>>100
何故、kill(1, SIGKILL) にしない ?
0111デフォルトの名無しさんNGNG
>>110
そんな、あんた、乱暴な。
0112デフォルトの名無しさんNGNG
#include <stdio.h>
int 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
>>112-113
何がしたいんだ?
0115デフォルトの名無しさんNGNG
邪悪なコード
0116デフォルトの名無しさんNGNG
邪なコード
0117デフォルトの名無しさんNGNG
仲人
0118デフォルトの名無しさんNGNG
#include<stdio.h>

#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デフォルトの名無しさんNGNG
で何がしたいんだ?
0120デフォルトの名無しさんNGNG
c=3
0121デフォルトの名無しさんNGNG
女神転生(最初のやつ)の主人公って、
ナカジマカオルだったっけ?
0122デフォルトの名無しさんNGNG
>>121
ぬるぽ
0123デフォルトの名無しさんNGNG
中島朱実
ナカジマアケミ
0124デフォルトの名無しさんNGNG
悪魔償還プログラムはBASICですよ。マジで。



0125デフォルトの名無しさんNGNG
うそつくなー!アセンブリ言語だよー!
0126デフォルトの名無しさんNGNG
125 が正解。
しかも、Z80 のアセンブリ言語な。
0127デフォルトの名無しさんNGNG
4004 じゃないのか
01281NGNG
#define"はじめ"{
#define"おわり"{

#define"中心"main

#define"もし"if
#define"くりかえす"for

#define"代入"=

#define"等しい"==

#define"たす"+

#define"整数"int
01292NGNG
#define"ここから"(
#define"ここまで")

#define"戻り値"return

#define"出力" printf

#define"、";

#define"一つたす"++

#define"改行"\n


//#define追加#include

#include<stdio.h>


整数 中心 ここから ここまで はじめ

整数 i、
くりかえす ここから i 代入 0 、i 等しい 10 、i 一つたす ここまで
出力 ここから "テストテスト 改行" ここまで

もどりち i、

おわり
01302NGNG
上記のコードはむりなのかなぁ〜

VC++じゃ無理....
0131デフォルトの名無しさんNGNG
>>130
#define のシンボルは、C/C++ の命名規則による。
どうしてもそのコードを通したいなら、日本語に対応したプリプロセッサを
自分で書く事だ。
0132デフォルトの名無しさんNGNG
>128-129
なかなか面白いことやるねあんた
0133デフォルトの名無しさんNGNG
「邪悪」ってのは、可読性とコーディングスタイルだけのことなのか?

処理内容が邪悪、ってのはNG?(おい
0134デフォルトの名無しさんNGNG
HSP はそれだけで邪悪
0135デフォルトの名無しさんNGNG
>>133
ファイルシステム破壊とか本当に悪質なものはダメでしょ。
0136デフォルトの名無しさんNGNG

>>135
マジレスありがと。

# 悪意がなくても、バグでファイルシステムが逝っちゃうケースも
# ありそうな気がするけど・・・。
0137デフォルトの名無しさんNGNG
>>134

title ""
return
loop
end
0138137NGNG
やべっ、素で間違えた
return→repeat

…HSPって難しいね。
0139CNGNG
>>129
JPerlならほぼ全部日本語のプログラミング言語です
0140デフォルトの名無しさんNGNG
#define that this
#define these this
#define those this

return *these;
0141デフォルトの名無しさんNGNG
ttp://public.planetmirror.com/pub/ancient-unix/
ここにある7th Edition UNIXの/bin/shのようなコードかな
Pascalとは微妙に違うがマクロの正しい使い方だな
0142デフォルトの名無しさんNGNG
#define NULLPO NULL
0143デフォルトの名無しさんNGNG
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>142
0144デフォルトの名無しさんNGNG
http://pc2.2ch.net/test/read.cgi/tech/1028269762/203
↑に、>>1の while 版があるなも。
0145デフォルトの名無しさんNGNG
#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;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デフォルトの名無しさんNGNG
145 を構造化して整理してくれんか。
0147デフォルトの名無しさんNGNG
#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;
   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
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;
   }
0149デフォルトの名無しさんNGNG
   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;
      nullpo;
   }
   while(to == gooo)
   {
      ++ogto;to = oogo;
   }
0150デフォルトの名無しさんNGNG
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;
   }
0151デフォルトの名無しさんNGNG
   while(to == ogoo)
   {
      ootg -= 3;
      to = gooo;
   }
   
   while(to == goog)
   {
      ogot = fopen(toog[ottg], "r");
      to = ogog;
   }
   
   while(to == ggto)つかれた
   {
      ogto = tgoo;
      to = ggot;
   }
}
}ぼぼぼーぼ
0152デフォルトの名無しさんNGNG
>>150 の「あああ」あたりから精神的にヤバくなってないか?(;´Д`)ダイジョウブ?
0153デフォルトの名無しさんNGNG
ワラタ
0154デフォルトの名無しさんNGNG
 ミノガサナイゾ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>149
0155デフォルトの名無しさんNGNG
この板にはぬるぽ叩きに命かけてるヤシがいるみたいだな。
0156デフォルトの名無しさんNGNG
 ミノガサナイゾ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>155
0157デフォルトの名無しさんNGNG
↓うおー、お前よくそんなに邪悪なコード書けるな。
すげぇよ。尊敬。
0158デフォルトの名無しさんNGNG
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>157
0159157NGNG
>158
お前には失望したよ。
0160デフォルトの名無しさんNGNG
>>159
もう遅いぬるぽ
0161デフォルトの名無しさんNGNG
 オヤクソク‥ト
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>160
0162仕様書無しさんNGNG
ぬるぽに投票してください。
http://pumpkinnet.to/ranking/words/
0163デフォルトの名無しさんNGNG
 ランクヒクスギ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>162

0164山崎渉NGNG
(^^)
0165山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0166デフォルトの名無しさんNGNG
か、め、は、め、はーーーーーーー
http://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
  /\
■ このスレッドは過去ログ倉庫に格納されています