gpt4 book ai didi

c - 这段代码如何生成印度 map ?

转载 作者:行者123 更新时间:2023-11-30 16:21:27 25 4
gpt4 key购买 nike

此代码打印印度 map 。它是如何工作的?

#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;
}

最佳答案

长字符串只是转换为 ASCII 的二进制序列。第一个 for 语句使 b 从 10 开始,字符串后面的 [b+++21] 产生 31。作为数组,偏移量 31 是字符串中“真实”数据的开始(您提供的代码示例中的第二行)。代码的其余部分只是循环遍历位序列,将 1 和 0 转换为 ! 和空格,并一次打印一个字符。

较少混淆的版本:

#include "stdio.h"
int main (void) {
int a=10, b=0, c=10;
char* bits ="TFy!QJu ROo TNn(ROo)SLq SLq ULo+UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^NBELPeHBFHT}TnALVlBLOFAkHFOuFETpHCStHAUFAgcEAelclcn^r^r\\tZvYxXyT|S~Pn SPm SOn TNn ULo0ULo#ULo-WHq!WFs XDt!";
a = bits[b];
while (a != 0) {
a = bits[b];
b++;
while (a > 64) {
a--;
if (++c == 'Z') {
c /= 9;
putchar(c);
} else {
putchar(33 ^ (b & 0x01));
}
}
}
return 0;
}

strange 巧妙的部分在于 putchar 语句中。获取第一个 putchar。 ASCII 'Z' 是十进制的 90,因此 90/9 = 10 这是一个换行符。在第二个中,十进制 33 是​​ '!' 的 ASCII。切换 33 的低位会得到 32,这是表示空格的 ASCII。如果 b 是奇数,这会导致打印 !;如果 b 是偶数,则打印空格。其余的代码只是简单地让“指针”a 遍历字符串。

关于c - 这段代码如何生成印度 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54853250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com