需要澄清其工作原理。
#include "stdio.h"
main()
{
int a,b,c;
int count = 1;
for (b=c=10;a="- FIGURE?, UMKC,XYZHello Folks,\
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!" [b+++21]; )
for(; a-- > 64 ; )
putchar ( ++c=='Z' ? c = c/ 9:33^b&1);
return 0;
}
自己尝试一下,如果您知道该程序如何打印该 map ,请解释一下。
最佳答案
编辑:抱歉,没有看到骗子...
<小时/>去除各种不可读的、不必要的和未使用的代码以及其他类型的混淆后,代码等效于:
#include "stdio.h"
int main()
{
int curr_char, b, c;
const char *data = "\
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!";
for (b = 0, c = 10; curr_char = data[b]; ) {
b++;
for(; curr_char-- > 64 ; ) {
putchar(++c == 'Z' ? c = c / 9 : 33 ^ b & 1);
}
}
return 0;
}
基本上,程序将 map 数据存储在字符串中(每行对应 4 个字符),逐个字符地遍历字符串,“解码”它(使用一些我懒得进行逆向工程的数学),然后打印空格或“!”在行尾标记或换行符。
关于c - 这个程序如何打印印度 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15172106/