加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]国际C语言乱码大赛(IOCCC)的一个经典作品

(2014-06-19 11:21:28)
标签:

转载

你也许听说过“国际C 语言乱码大赛(IOCCC)”,能获奖的人毫无疑问是世界顶级C程序员。这是他们利用C 语言的特点极限挖掘的结果。下面这个例子就是网上广为流传的一个经典作品:

#include <stdio.h>
main(t,_,a)char *a;
{
    return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
                                       main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
      main(2,_+1,"%s %d %dn"):9:16:t<0?t<-72?main(_,t,
                  "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw'
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')#
}'+}##(!!/")
          :t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1)
              :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,
                                                "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry"),a+1);
}


还没发狂?看来你抵抗力够强的。这是IOCCC 1988 年获奖作品,作者是Ian Phillipps。

毫无疑问,Ian Phillipps 是世界上最顶级的C 语言程序员之一。

你可以数数这里面用了多少个符号。当然这里我并不会讨论这段代码,也并不是鼓励你也去写这样的代码
(关于这段代码的分析,你可以上网查询)。

恰恰相反,我要告诉你的是:
大师把代码写成这样是经典,你把代码写成这样是垃圾!

所以在垃圾和经典之间,你需要做一个抉择。

---------附:高亮后的效果

http://hiphotos.baidu.com/newton111/pic/item/02a03e73d402d74a8601b01e.jpg


---------附:在Microsoft Visual C++ 6.0中编译运行的结果为

Ot.dig.xry,d.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.,gcotC.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.diryC.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.xouydi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.xrxdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.,rndi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.,gpgtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.grhdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.trtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.dgtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
dgt.loyC,.a-lgabrthf
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.glgpgtdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
glgpgt.brbgy,.brbrthf.dgt.loyC,.a-lgabrthf
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv

Ot.dig.dwglxdi.Ca .ox.eiyr,dma,.m .dyug.lopg.hapg.do.mg
dwglpg.Cyummgy,.Cyummrthf.glgpgt.brbgy,.brbrthf.dgt.loyC,.a-lgabrthf
trtg.laCrg,.Catcrthf.grhid.marC,.a-mrlsrthf.,gpgt.,wat,.a-,wrmmrthf
,rn.hgg,g.a-la rthf.xrpg.holC.yrth,;
xouy.callrth.kryC,f.diygg.xygtci.igt,f.dwo.duydlg.Copg,
atC.a.baydyrChg.rt.a.bgay.dyggv


-----------end--------------------------


运行结果如下:

On the first day of Christmas my true love gave to me 
a partridge in a pear tree. 

On the second day of Christmas my true love gave to me 
two turtle doves 
and a partridge in a pear tree. 

On the third day of Christmas my true love gave to me 
three french hens, two turtle doves 
and a partridge in a pear tree. 

On the fourth day of Christmas my true love gave to me 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the fifth day of Christmas my true love gave to me 
five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the sixth day of Christmas my true love gave to me 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the seventh day of Christmas my true love gave to me 
seven swans a-swimming, 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the eigth day of Christmas my true love gave to me 
eight maids a-milking, seven swans a-swimming, 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the ninth day of Christmas my true love gave to me 
nine ladies dancing, eight maids a-milking, seven swans a-swimming, 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the tenth day of Christmas my true love gave to me 
ten lords a-leaping, 
nine ladies dancing, eight maids a-milking, seven swans a-swimming, 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the eleventh day of Christmas my true love gave to me 
eleven pipers piping, ten lords a-leaping, 
nine ladies dancing, eight maids a-milking, seven swans a-swimming, 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree. 

On the twelfth day of Christmas my true love gave to me 
twelve drummers drumming, eleven pipers piping, ten lords a-leaping, 
nine ladies dancing, eight maids a-milking, seven swans a-swimming, 
six geese a-laying, five gold rings; 
four calling birds, three french hens, two turtle doves 
and a partridge in a pear tree.

 

代码的解析见:http://www.cnblogs.com/csn0721/archive/2009/06/24/1510402.html


0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有