简单的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表示学生学号,n i 表示第个学生学号;g表示学生成绩,g i 表示第个学生成绩;则算法可表示如下:
S1:1 -> i
S2:如果g i ≥80,则打印n i 和g i ,否则不打印
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继续执行,否则,结束。

示意图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值