《IOCCC1988获奖作品分析》由会员分享,可在线阅读,更多相关《IOCCC1988获奖作品分析(12页珍藏版)》请在金锄头文库上搜索。
1、1IOCCC 1988 获奖作品分析/ 原始代码#include char *a;main(int t,int _,char* a)return!0 char *a; / can be omitted due to function fieldmain(int t,int _,char* a)return !0 main(int t,int _,char* a)/ 逻辑运算优先级,便于理解if(!0 main(int t,int _,char* a)if(1 int decode(int arg1,int arg2,char* sCodec)if(1 TRUE/ 分析 arg1 的内容,重构方
2、法,有些坳,自己试着理解吧#include int decode(int arg1,int arg2,char* sCodec)if(1 int decode(int arg1,int arg2,char* sCodec)if(1 1/ the usage of arg1, arg2, sCodec. Can be omitted.#include void decode2(int arg1)char* sCodec = n+,#/*w+/w#cdnr/+,r/*de+,/*+,/w%+,/w#q#n+,/#l+,/nn+,/+#n+,/#;#q#n+,/+k#;*+,/r :d*3,w+K
3、wK:+e#;dq#l 10q#+dK#!/+k#;q#reKK#wreKKnl/#;#q#n)#w)nl/+#n;drw i;# )nl!/nn#; r#wr ncnl/#l,+K rw iK;nl/w#q#nwk nw iwkKKnl!/w%l#w# i; :nl/*q#ld;rnlwb!/*dec ;nl-rw/+,#*#nc,#nw/+kd+e+;#rdq#w! nr/ ) +rl#n )# +#(!/;int border = (arg1 void decode2(int arg1)char* sCodec = n+,#/*w+/w#cdnr/+,r/*de+,/*+,/w%+,/w
4、#q#n+,/#l+,/nn+,/+#n+,/#;#q#n+,/+k#;*+,/r :d*3,w+K wK:+e#;dq#l q#+dK#!/+k#;q#reKK#wreKKnl/#;#q#n)#w)nl/+#n;drw i;# )nl!/nn#; r#wr ncnl/#l,+K rw iK;nl/w#q#nwk nw iwkKKnl!/w%l#w# i; :nl/*q#ld;rnlwb!/*dec ;nl-rw/+,#*#nc,#nw/+kd+e+;#rdq#w! nr/ ) +rl#n )# +#(!/;int border = (arg1=2;arg1-)decode2(-27+arg1
5、);return 1;int main(int argc, char* argv, char* _environ)decode();return 9;12/ 额外写段代码,看一下。对照之后推一下原始代码的结果吧。#include int main(int argc, char* argv, char* _environ)char a=n+,#/*w+/w#cdnr/+,r/*de+,/*+,/w%+,/w#q#n+,/#l+,/nn+,/+#n+,/#;#q#n+,/+k#;*+,/r :d*3,w+K wK:+e#;dq#l q#+dK#!/+k#;q#reKK#wreKKnl/#;#q#n
6、)#w)nl/+#n;drw i;# )nl!/nn#; r#wr ncnl/#l,+K rw iK;nl/w#q#nwk nw iwkKKnl!/w%l#w# i; :nl/*q#ld;rnlwb!/*dec ;nl-rw/+,#*#nc,#nw/+kd+e+;#rdq#w! nr/ ) +rl#n )# +#(!/;char b=!ek;dc ibK(q)-w*%n+r3#l,:nuwloca-O;m .vpbks,fxntdCeghiry;for(int i=0;isizeof(a);+i)for(int j=0;jsizeof(b);+j)if(ai=bj)ai=bj+31;break
7、;printf(%s,a);return 1;On the /first/second/third/fourth/fifth/sixth/seventh/eigth/ninth/tenth/eleventh/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 dovesand /a partridge in a pear tree.