清华大学出版社 TSINGHUA UNIVERSITY PRESS 可以设两个变量:一个变量代表被乘数, 个变量代表乘数。不另设变量存放乘积结 果,而直接将每一步骤的乘积放在被乘数 变量中。设p为被乘数,为乘数。用循环 算法来求结果,算法可改写 S1:使p=1。 S2:使i2。 S3:使p×i,乘积仍放在变量p中,可表示为:p×ip S4:使i的值加1,即计1i。 S5:如果不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到p的值就 是5的值。 C程序设计(第三版) http://ccf.tsinghuaedu.cn 16
C程序设计(第三版) http://ccf.tsinghua.edu.cn 16 S1:使p=1。 S2:使i=2 S3:使p×i,乘积仍放在变量p中,可表示为:p×ip S4:使i的值加1,即i+1i S5:如果i不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到p的值就 是5!的值。 可以设两个变量:一个变量代表被乘数,一 个变量代表乘数。不另设变量存放乘积结 果,而直接将每一步骤的乘积放在被乘数 变量中。设p为被乘数,i为乘数。用循环 算法来求结果, 算法可改写:
清华大学出版社 TSINGHUA UNIVERSITY PRESS 如果题目改为:求1×3×5×.×1000算 法只需作很少的改动 S1:1→p 简憊 S2: S3: 3p 1 S4:i+2→p S5:若11,返回S3。否则,结束 C程序设计(第三版) http://ccf.tsinghuaedu.cn 17
C程序设计(第三版) http://ccf.tsinghua.edu.cn 17 S1:1→p S2:3 → i S3:p×i → p S4:i+2 → p S5:若i≤11,返回S3。否则,结束。 如果题目改为:求1×3×5×……×1000算 法只需作很少的改动:
清华大学出版社 TSINGHUA UNIVERSITY PRESS 用这种方法表示的算法具有通用性、灵 活性。S3到S5组成一个循环,在实现算 法时要反复多次执行S3,S4,S5等步骤 ,直到某一时刻,执行S5步骤时经过判 断,乘数记已超过规定的数值而不返回S3 步骤为止。此时算法结束,变量p的值就 是所求结果。 C程序设计(第三版) http://ccf.tsinghuaedu.cn 18
C程序设计(第三版) http://ccf.tsinghua.edu.cn 18 用这种方法表示的算法具有通用性、灵 活性。S3到S5组成一个循环,在实现算 法时 要反复多次执行S3,S4,S5等步骤 ,直到某一时刻,执行S5步骤时经过判 断,乘数i已超过规定的数值而不返回S3 步骤为止。此时算法结束,变量p的值就 是所求结果
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例2,2有50个学生,要求将他们之中成绩在80 分以上者打印出来。设n表示学号,n1代表 第一个学生学号,代表第个学生学号。用G 代表学生成绩,g代表第个学生成绩,算法 表示如下: S1:1→i S2:如果≥80,则打印和,否则不打印。 S3:i+1→ S4:如果i≤50,返回S2,继续执行。否则算法结束 变量作为下标,用来控制序号第几个学生 ,第几个成绩)。当i超过50时,表示已对50 个学生的成绩处理完毕,算法结束。 在c程序设计(第三版)|htp:/ ccf. tsinghua. edu. cn 19
C程序设计(第三版) http://ccf.tsinghua.edu.cn 19 例2.2 有50个学生,要求将他们之中成绩在80 分以上者打印出来。设n表示学号, n1代表 第一个学生学号, 代表第i个学生学号。用G 代表学生成绩 , gi代表第i个学生成绩,算法 表示如下: S1:1 → i S2:如果≥80 S3:i+1 → i S4:如果i≤50,返回S2,继续执行。否则算法结束 变量i作为下标,用来控制序号(第几个学生 ,第几个成绩)。当i超过50时,表示 已对50 个学生的成绩处理完毕,算法结束
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例23判定2000~2500年中的每一年是否闰年 将结果输出。 分析∶闰年的条件是:(①1)能被4整除,但不能被 100整除的年份都是闰年,如1996,2004年是闰 年;(2能被100整除,又能被400整除的年份 是闰年。如1600,2000年是闰年。不符合这两 个条件的年份不是闰年。 变量作为下标,用来控制序号第几个学生 第几个成绩)。当超过50时,表示已对50 个学生的成绩处理完毕,算法结束。 C程序设计(第三版) http://ccf.tsinghuaedu.cn
C程序设计(第三版) http://ccf.tsinghua.edu.cn 20 例2.3 判定2000~2500年中的每一年是否闰年, 将结果输出。 变量i作为下标,用来控制序号(第几个学生 ,第几个成绩)。当i超过50时,表示 已对50 个学生的成绩处理完毕,算法结束。 分析:闰年的条件是:(1)能被4整除,但不能被 100整除的年份都是闰年,如1996,2004年是闰 年;(2)能被100整除,又能被400整除的年份 是闰年。如1600,2000年是闰年。不符合这两 个条件的年份不是闰年