【欢乐】什么是久经考验的代码啊?

让我们来看看这次长辈给我们布置的上机实验题目吧 :

下面我们来看看如何运用逐步求精的方法来设计程序。(1)问题说明: 读入一个自然语 言文本。分段写出,每一行左右对齐,以自由格式输入,每个字以空格分开,每一个标点符 号和前一个字紧连在一起(即中间不能插入空格),用一个特别的字/PAR/表示一个新段开始。 输出行的字符数在读入文本前读入。输出要求在每行放尽可能多的字。每个字间可入一个或 多个空格,每个标点符号紧跟前一个字且在同一行。用在字间添加空格的方法使输出文本的 每一行左右对齐,并保证每个字不能分隔在两行。每段结束处不必右对齐。设字长不超过 $20$, 特别应保证每行所能容纳的字符数大于一个字加一个标点的长度。

读了一遍,讲真我没读懂他想让我干什么。本着“逐步求精”的精神,我决定还是仔细分析下为妙。

每一行左右对齐,以自由格式输入

左右对齐还自由格式?那么什么是自由格式呢?不懂就问神奇的百度,百度告诉我:


在9102年还能看到FORTRAN的文档,泪,流了下来……
果然是长辈,为了给大家科普学史在作业里留彩蛋。
好吧,但是长辈教导我们要用C++,于是我们先抛开FORTRAN不管。

输出要求在每行放尽可能多的字。每个字间可入一个或 多个空格,每个标点符号紧跟前一个字且在同一行。用在字间添加空格的方法使输出文本的 每一行左右对齐,……特别应保证每行所能容纳的字符数大于一个字加一个标点的长度。

这里的“尽可能多”让我觉得非常莫名其妙。给了每行的下限却不给上限,那么如果每一行的长度不做限制,那我岂不是把每一段都放一行就好了?

我还是不懂。要不还是百度看看有没有题解吧!

我缓缓地打出了一个问号。
不过还好长辈比较善良,给的实验题都有参考程序,那么我们就来学习一下吧!

  • 注:$levet$ ,通假词,通 $level$

我就说怎么会没有纸的宽度嘛,不过这个$80$是从那里蹦出来的呢?

把花括号和语句写在同一行,我记得这种写法我在出版于上个世纪$80$年代《编程珠玑》那本书里看到过。果然是久经前人考验的代码,读起来有种古色古香的感觉。什么是国际经典代码啊(战术后仰)?

你看看现在的程序员都什么歪风,花括号不换行!这是人能看的吗?更可恶的是,还有的程序员,花括号占单独的一行!奢侈!浪费!存储空间是给你浪费在无用的换行符上的吗? 哎,真是世风日下,道德沦丧。

咋一看我没读懂这个命名。但是仔细一读发现这个名字把汉语和英语融合了起来——首先,我们知道$read$的过去式发音同$red$。但是你单独写一个$read$上去谁知道你什么时候”read”的呢?这里写成它的音同字$red$,让人一看就知道这是过去读的字。妙啊,这里面蕴含了不少学问。

那么while(!EOF)是什么呢?首先,EOF被定义为# define EOF (-1).那么!EOF就是false。果然是大道至简,大道至简啊……什么?你说它不会执行?经过很多人检验的代码怎么会有错呢!一定是你的知识学的不到位。

  • 注:$brank$和$beank$均为$blank$的通假写法。

这是给的标程里最长的函数了。没有一行注释,说明先辈认为,这么简单的程序有什么加注释的必要吗?

有一个奇怪的变量乍一看不知道到底是什么意思。$nmrofagps$ .发挥想象力,分割一下,$nmr$ 一个词,什么意思呢?不知道。$of\ \ a\ \ GPS$. 噢,原来是某个$GPS$装备。这么简单的代码居然能模拟出一个$GPS$……果然还是我才疏学浅。

一读代码才知道,原来它保存的是每一行的空格个数。用$GPS$导航仪来记录空格数目,不禁让人有一种“关公战秦琼”的感觉。不愧是祖传代码,蕴含了浓厚的传统文化。

数组开$24$真的不会溢出吗?题目说了,单词长度不超过$20$ 。什么?你说这个该怎么办?

此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注