我的位置: 首页 > 学习专区 > .NET技术 >
热点专题更多 >
热门标签更多 >
简单的C语言算法举例
时间:2013-04-25 16:18:08   来源:
大家都在关注:东莞fun88网 东莞电脑培训
分享到:
[导读] 【例2 1】求1×2×3×4×5。 最原始方法: 步骤1:先求1×2,得到结果2。 步骤2:将步骤1得
【例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写成: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年中的每一年是否闰年,将结果输出。润年的条件:
  1. 能被4整除,但不能被100整除的年份;
  2. 能被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继续执行,否则,结束。