C语言程序设计
第二章 程序的灵魂 -- 算法
主讲教师:李艺
leeyi@ustc.edu.cn
2-2
2.1 算法的概念
p 沃思公式:
数据结构+算法=程序
对数据的描述,要指定 对操作的描述,
数据的类型、数据的组 即操作步骤
织形式
p 具体化:
程序=算法+数据结构+程序设计方法+语言工具和环
境
2-3
2.1 算法的概念
u 做任何事都有一定的次序和步骤;如:召开会议,购
物等;
u 算法是为解决一个问题而采取的方法和步骤;
u 注意:
l 解决同一个问题可以有不同的方法和步骤,方法有
优劣之分,
l 采用简单的和运算步骤少的方法为优 !
2-4
2.1 算法的概念
p 算法分两大类别
n 数值运算算法:目的是求数值解,算法成熟;
n 非数值运算算法:种类繁多,要求各异,难以规范
2-5
2.2 简单算法举例
p 例1 求 1×2×3×4×5
n 手工计算方法:
① ② ③ ④
1×2,得2; 2×3,得6; 6×4,得24 ; 24×5 120
n 通用的方法: 设两个变量 (被乘数p,乘数i)
l第一步:1 >p
l第二步:2 >i
l第三步:p ×i >p
l第四步: i+1 >i
l第五步:若i≤5,返回第三步;否则结束
2-6
2.2 简单算法举例
p 如果题 目改为求1×3 ×5 ×7 ×9 ×11
l第一步:1 >p
l第二步:3 >i
l第三步:p ×i >p
l第四步: i+2 >i
l第五步:若i≤11,返回第三步;否则结束
p 用这种方法表示的算法具有通用性、灵活性
2-7
2.2 简单算法举例
p 例2 有50个学生,要求将他们之中成绩在80分以上者打
印出来
p 算法分析:用n表示学生学号,n1代表第一个学生学号,
ni代表第i个学生的学号,g1代表第一个学生成绩,gi代
表第i个学生成绩
p 算法
n 第一步: 1 >i
n 第二步: 若gi≥80则打印ni和gi,否则不打印
n 第三步: i+1 >i
n 第四步: 若i≤50返回第二步,否则算法结束