很无语的语言,输出‘Hello Word’,????什么鬼???

本文介绍了一系列古怪且独特的程式语言,如Brainfuck、Whitespace、///、Befunge、Piet和Malbolge,这些语言的设计初衷往往是为了挑战程式设计师的极限或是作为娱乐之用。尽管如此,它们仍展现了程式设计的无限可能。
部署运行你感兴趣的模型镜像

Brainfuck
Brainfuck 是一门晦涩难以捉摸的语言巨星,这个语言是出了名的难以编写,只有 8 个简单命令与 1 个指令指标。Brainfuck 大概只是为了挑战程式设计师,或纯粹娱乐用,没有什麼实际作用。Urban Müller 於 1993 年创造了 Brainfuck,以下是用这门语言编写「Hello World!」的样子:
在这里插入图片描述what??
Whitespace
Whitespace 是一门很特立独行的程式语言,它只认空格、制表符(tab)以及换行符号(new line,感谢网友指正),而忽略所有非空白字元。 这个特点让 Whitespace 得以隐藏在其它程式语言如 JavaScript 中,后者的缩排就是空白字元。以下是用 Whitspace 写出「Hello, World!」的范例(空格标记为 S,制表符标记为 T):
在这里插入图片描述
///(←这是门语言)
/// 是一门非常简约的语言,其实它就只有一个操作:使用 /source/replacement/ 这样的形式进行字串替换。2006 年 Tanner Swett 开发了这门语言。/// 功能很有限,但是某些聪明的程式设计师能够将字串替换转为完整且有用的程式,可以用来循环与输出数据。以下为简单的「Hello, World!」程式:
在这里插入图片描述
Befunge
Befunge 是一门二维程式语言,程式写在一个固定大小的范围,这个范围的每一列都可以放置程式或数据,程式可以替换任何想要替换的列。编译器从左上列开始,自左而右编码,你可以使用特殊方向指令控制编译器的方向,以下为简单的「Hello, World!」程式:
在这里插入图片描述
Piet
Piet 是由 Ben Olmstead 於 1998 年创造,这门语言是以点阵图的形式呈现,就像一幅抽象画一样。基本的程式区块就是一个个色块,支援 20 种颜色。编译器由色块周遭的「指标」引导,在图像中的一个色块移动到下一个。以下为「Hello, World」程式:
在这里插入图片描述
什么鬼??
Malbolge
1998 年 Ben Olmstead 发明了 Malbolge,以但丁《神曲》中的第八圈地狱命名。这名字可不是随便乱取的,Malbolge 的创立初衷就是要让工程师再怎样也无法用它写出可以发挥实际作用的语言。不过几年后,有人发现其中存有漏洞,用 Malbolge 写出了有意义的程式,但前提是你最好是一名密码科学家,才能看穿「地狱」。以下是 Malbolge 中写起来比较像「Hello, World」的程式:
在这里插入图片描述
最优雅的程式语言:Shakespeare
虽然已经介绍了十种有点莫名其妙的程式语言,不过大家应该还会想玩玩这个:英国伟大文学作家莎士比亚除了写出经典剧作、诗歌与小说,他的生花妙笔也可以变成优雅的程式语言!Shakespeare 可是 SourceForge 的专案,模仿莎士比亚戏剧,是一种以堆叠为基础的语言,每个出场人物都代表一个堆叠,自由度非常高,同一个程式可以写出截然不同的程式,整个程式包含人物简介,幕、场标题,人物动作、台词,看起来就是一出完整的戏剧,史诗巨作版的 Hello, World
在这里插入图片描述666666

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

你的问题非常好: > “为什么写 `hello world` 就行,而这里却要加 `\n` 和转义符?” 我们来一步一步解释这个看似“不公平”的现象。 --- ### ✅ 一、先说结论: > **不是“写 hello world 就不写”,而是“你以前写的 hello world 其实也该写 `\n`”!** 只不过有些时候系统宽容,让你**侥幸通过了**,但严格来说: ✅ 正确的写法应该是: ```c printf("Hello World\n"); ``` --- ### ✅ 二、为什么平时写 `"Hello World"` 没问题? 比如你写: ```c #include <stdio.h> int main() { printf("Hello World"); return 0; } ``` 输出: ``` Hello World ``` 看起来没问题对吧?但在某些场合会出事! #### ❌ 问题在哪? - 输出没有换行(`\n`) - 如果评测系统要求“每行一个结果”,就会判为“格式错误” - 有的系统甚至要求最后一行也必须以换行结束 📌 很多 OJ 系统是逐行比对输出文件的。如果没有 `\n`,可能导致两行合并成一行 → 判错! --- ### 🌰 举个例子说明重要性 假设两个程序输出: | 程序 | 输出内容(肉眼看) | 实际字节流 | |------|------------------|-----------| | A | Hello World | `H e l l o W o r l d`(无换行) | | B | Hello World<br> | `H e l l o W o r l d \n`(有换行) | 评测系统对比时可能期望的是: ``` Hello World\n ``` 如果程序 A 输出没有 `\n`,就会被判 **Presentation Error** 或 **Wrong Answer** --- ### ✅ 三、那为什么“葡萄题”必须写 `\n` 和 `\"`? #### 1. `\"` 是为了输出引号本身 你想打印这句话: ``` The fox says, "I am sure..." ``` 中间的 `"}` 是文本的一部分,不是代码边界。 如果不转义,C 语言会认为你结束了字符串,然后后面乱码 —— 编译都通不过! 所以必须写成: ```c "The fox says, \"I am sure...\"" ``` 👉 `\` 告诉编译器:“别把下一个字符当语法,就当普通字符处理。” --- #### 2. `\n` 是为了符合输出规范 题目虽然没明说,但所有标准输出题都默认: > ✅ 每行输出后都要换行 否则: - 多个测试用例输出挤在一行 - 评测系统无法识别答案结构 --- ### ✅ 四、对比总结 | 写法 | 是否推荐 | 说明 | |------|----------|------| | `printf("Hello World");` | ⚠️ 不推荐 | 缺少换行,可能被判格式错误 | | `printf("Hello World\n");` | ✅ 推荐 | 标准写法,保证换行 | | `printf("The fox says, \"...\"\n");` | ✅ 必须这样写 | 含特殊字符,必须转义 + 换行 | --- ### ✅ 最终知识点 - **`\n` 的作用**:确保输出换行,避免因格式问题被判错。 - **`\"` 的必要性**:在字符串中输出双引号时必须使用转义字符。 - **编程规范意识**:即使“看起来一样”,也要严格按照标准格式输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CBDLL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值