2.简单的C语言算法举例

最后更新于:2022-04-01 23:15:29

# 2.简单的C语言算法举例 【例2-1】求1×2×3×4×5。 最原始方法: 步骤1:先求1×2,得到结果2。 步骤2:将步骤1得到的乘积2乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。 这样的算法虽然正确,但太繁。 改进的算法: S1:使t=1 S2:使i=2 S3:使 t×i,乘积仍然放在在变量t中,可表示为 t×i -> t S4:使i的值+1,即 i+1 -> i S5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。 如果计算100!只需将“S5:若i≤5”改成“i≤100”即可。 如果改成求1×3×5×7×9×11,算法也只需做很少的改动: S1:1 -> t S2:3 -> i S3:t×i -> t S4:i+2 -> t S5:若i≤11,返回S3;否则,结束。 该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算的自动机器,实现循环轻而易举。 思考:若将S5写成:“若i<11,返回S3;否则,结束”会怎样。 【例2-2】有50个学生,要求将他们之中成绩在80分以上者打印出来。如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩,gi表示第个学生成绩;则算法可表示如下: S1:1 -> i S2:如果gi≥80,则打印ni和gi,否则不打印 S3:i+1 -> i S4:若i≤50,返回S2,否则,结束。 【例2-3】判定2000 ~ 2500年中的每一年是否闰年,将结果输出。润年的条件: * 能被4整除,但不能被100整除的年份; * 能被100整除,又能被400整除的年份。 设y为被检测的年份,则算法可表示如下: S1:2000 -> y S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6 S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6 S4:若y能被100整除,又能被400整除,输出y“是闰年” 否则输出y“不是闰年”,然后转到S6 S5:输出y“不是闰年”。 S6:y+1 -> y S7:当y≤2500时,返回S2继续执行,否则,结束。 ![](http://www.lvtao.net/content/uploadfile/201404/e2742217bf0046a6c6e9256b237eca5220140421033049.gif) 示意图
';