[c 语言谜题] 程序填空,老程序员来做做

2018-09-26 12:05:52 +08:00
 shilyx
#include <stdio.h>

int main() {
[]
printf("%p\n", **************************************************************p);
return 0;
}

在 [] 标记内加入一条语句,使得:
1、程序编译通过,无错误(警告随意);链接通过,无错误(警告随意)
2、程序能够运行,无崩溃和运行时错误
3、源代码为.c 文件
4、如果用 vs,则使用 Release 配置;用 gcc 也行
5、加入的语句不能忽略分号
6、printf 一句必须能够正常输出内容

问:
1、要加入的语句的长度最小是几(含分号、空白、字符、符号等)?
2、这个最小长度的语句的 sha256 哈希值是多少?

ps:为了确保为数不多的趣味性,请勿直接贴出语句。
6245 次点击
所在节点    程序员
69 条回复
pkokp8
2018-09-26 17:12:56 +08:00
@pkokp8 又想了下,想出两种方法,不带换行 9 字符
编译器 gcc 5.4.0
第一个加-Wall 有警告,第二个默认编译参数有警告

53808d5ada17e1d087fecee8c2c18ed0d013dfd482583d04a064d418d3d84f33
4ccce30e94240276e8312a60e59f662783a24df6f5695e65d626196d2220c764
garzon
2018-09-26 18:30:11 +08:00
@pkokp8 53808d5ada17e1d087fecee8c2c18ed0d013dfd482583d04a064d418d3d84f33 这个我也得到了,然而一开始在 g++( http://cpp.sh )上编译不通过就没管,刚才试了下 gcc 竟然通过了
bp0
2018-09-26 18:37:37 +08:00
只能想出来无输出的,坐等答案。
kkeiko
2018-09-26 18:50:26 +08:00
11 个 642afa25aff165250678f5fa3dd07b97a335957583763e83d182ca6d8bdc8aff
pkokp8
2018-09-26 19:16:15 +08:00
@garzon g++比较严格,不允许这种写法
where2go
2018-09-26 20:12:45 +08:00
echo -n xxxx|sha256sum -
10 无空格 2c37e77354dad4539dde1674c773f95d73faba8e9011aaa0d864d49b7c9ed793
where2go
2018-09-26 20:15:10 +08:00
echo xxxx |sha256sum -
echo 不加 -n 是这个
910e692fdda462dde57e91a4778de7cdbf4f2090ffdebe770b90be808ed5d024 -
where2go
2018-09-26 20:19:07 +08:00
还有个同 #25 的 14 字节的方案, 但是我为什么要这么闲呢
where2go
2018-09-26 20:27:06 +08:00
"在 [] 标记内加入一条语句" 的意思应该是 加完语句还要保留中括号吧
wevsty
2018-09-26 20:31:13 +08:00
看了各位的回复以后我才想到的答案是 11。
另外我表示谁要是给我写出这么长的*我肯定打回去重写。
SHA256:
9540245df67cac5bdd321924dae6521872883f4c593dd96ecdb2e734b2d4347b
wheeler
2018-09-26 20:55:48 +08:00
9
和#34 楼一样。
zouchtssn
2018-09-27 06:10:16 +08:00
mark
where2go
2018-09-27 09:17:31 +08:00
gcc 8.2, 这个特性应该较早就支持了
9 53808d5ada17e1d087fecee8c2c18ed0d013dfd482583d04a064d418d3d84f33
24bit
2018-09-27 11:06:36 +08:00
10 2c37e77354dad4539dde1674c773f95d73faba8e9011aaa0d864d49b7c9ed793

为什么可以这样呢?
dinjufen
2018-09-27 12:18:41 +08:00
过了这么久了,可以公布下答案吗
ysc3839
2018-09-27 13:03:27 +08:00
@ysc3839 前面搞错了,正确的 sha256 是 4ccce30e94240276e8312a60e59f662783a24df6f5695e65d626196d2220c764。
co3site
2018-09-27 14:06:42 +08:00
带空格 11 位 9540245df67cac5bdd321924dae6521872883f4c593dd96ecdb2e734b2d4347b
实在想不到更短的了,楼主能广布答案了吗?
shilyx
2018-09-27 14:23:42 +08:00
@co3site
@dinjufen
@24bit
@bp0
@marvinGet 答案来了

@where2go 看一楼,我的失误
GTim
2018-09-27 14:40:24 +08:00
楼主哪里找来的题目?
shilyx
2018-09-27 16:47:28 +08:00
@GTim 我老早就意识到了这个特性,不过昨天拿出来而已。

前两天看到有个朋友发帖提问 c 语言知识点,但是他的问题都是 malloc、free,涉及到未定义行为,不是不会答,而是不好答。所以就拿这个点出来问一问。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/492705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX