C语言从入门到精通(第6版)
上QQ阅读APP看书,第一时间看更新

2.2.1 自然语言

自然语言就是人们日常所用的语言,这种表述方式通俗易懂,下面通过实例具体介绍。

【例2.1】输入一个数n,求n!。

n!表示n的阶乘,其计算公式为:n!=1×2×3×…×n。算法描述步骤如下。

(1)定义3个变量i、n及mul,为i和mul均赋初值1。

(2)从键盘中输入一个数,赋给n。

(3)将mul乘以i的结果赋给mul。

(4)i的值加1,判断i的值是否大于n,如果大于n,则执行步骤(5),否则执行步骤(3)。

(5)将mul的结果输出。

【例2.2】农夫、羊、狼及白菜过河。

一名农夫要将一只狼、一只羊和一袋白菜运到河对岸。农夫的船很小,每次只能载下农夫本人以及狼、羊、白菜中的一个。但是,他不能把羊和白菜留在岸边,因为羊会把白菜吃掉;也不能把狼和羊留在岸边,因为狼会吃掉羊。那么,农夫该怎样将这3样东西送过河呢?

算法描述步骤如下。

(1)先把羊运过去。

(2)回来运狼。

(3)把狼运到对岸后,把羊装上船运回来。

(4)把羊放到开始的地方,把白菜运过去。

(5)再把羊运过去。

自然语言描述的好处是通俗易懂,弊端是容易产生歧义。例如,将例2.1步骤(3)中的“将mul乘以i的结果赋给mul”改为“mul等于i乘以mul”,这样就产生了歧义。并且,用自然语言来描述较为复杂的算法时,会显得不是很方便,因此一般情况下不采用自然语言来描述。