# 4.用流程图表示算法
除了很简单的问题,一般不用自然语言表示算法。我们推荐使用流程图表示算法。
流程图表示算法,直观形象,易于理解。
常用流程图说明:
![用流程图表示算法](http://www.lvtao.net/content/uploadfile/201404/4bbbc4ee2dae00833993a75b7ac11e9220140421033157.gif)
【例2.6】将【例2-1】求5!的算用流程图表示。
![将例2.1求5!的算用流程图表示](http://www.lvtao.net/content/uploadfile/201404/dc6baed0f3bc3a8a58deb6741bcdb27720140421033158.gif)
【例2.7】将【例2-2】的算用流程图表示。
![将例2.2的算用流程图表示](http://www.lvtao.net/content/uploadfile/201404/5480308776fb8e5281bef5ea2a5e864420140421033158.gif)
【例2.8】将【例2-3】判定闰年的算用流程图表示。
![将例2.2的算用流程图表示](http://www.lvtao.net/content/uploadfile/201404/38f39d8afc2c8af7a32657d7a4edc08220140421033158.gif)
### 2.1.1三种基本结构和改进的流程图
顺序结构:
![顺序结构](http://www.lvtao.net/content/uploadfile/201404/2cfb4eed8cbfecb7b1e7ba23b34ad33020140421033158.jpg)
选择结构:
![选择结构:](http://www.lvtao.net/content/uploadfile/201404/f845b79a5968a7b4b9f3bb1db100b4d020140421033158.jpg)
循环结构:
![循环结构](http://www.lvtao.net/content/uploadfile/201404/04ca6ecb09724447e59e6baf4f5773cc20140421033159.jpg)
三种基本结构的共同特点:
* 只有一个入口;
* 只有一个出口;
* 结构内的每一部分都有机会被执行到;
* 结构内不存在“死循环”。
### 2.1.1用N-S流程图表示算法
1973年美国学者提出了一种新型流程图:N-S流程图。
顺序结构:
![用N-S流程图表示算法](http://www.lvtao.net/content/uploadfile/201404/ba45dd3f4e0663eb11b66ab3a7b2834920140421033159.jpg)
![](http://www.lvtao.net/content/uploadfile/201404/2f4294d56c88649732190842bc046f2a20140421033159.jpg)
### 2.1.1用伪代码表示算法
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
### 2.1.2用计算机语言表示算法
* 我们的任务是用计算机解题,就是用计算机实现算法;
* 用计算机语言表示算法必须严格遵循所用语言的语法规则。
【例2.20】求1×2×3×4×5用C语言表示。
~~~
main()
{int i,t;
t=1;
i=2;
while(i<=5)
{t=t*i;
i=i+1;
}
printf(“%d”,t);
}
~~~
【例2.21】求级数的值。
~~~
main()
{
int sigh=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ sigh= -sigh;
term= sigh/ deno;
sum=sum+term;
deno=deno+1;
}
printf(“%f”,sum);
}
~~~
### 2.2结构化程序设计方法
* 自顶向下;
* 逐步细化;
* 模块化设计;
* 结构化编码。
- 前言
- 一. C语言概述
- 1.C语言的发展及其版本
- 2.C语言工作原理和运行机制
- 3.C语言编译器(开发工具|IDE)推荐
- 4.C语言的特点
- 5.第一个C语言程序
- 6.C语言输出函数(printf)和输入函数(scanf)
- 7.C语言程序的结构特点
- 8.C语言字符集
- 9.C语言词汇
- 二. C语言算法
- 1.什么是算法|算法的概念
- 2.简单的C语言算法举例
- 3.C语言算法的特性
- 4.用流程图表示算法
- 5.三种基本结构的流程图
- 6.用N-S流程图表示算法
- 7.用计算机语言表示算法
- 三. 数据类型和运算符
- 1.C语言的数据类型
- 2.C语言常量与变量
- 3.C语言整型数据
- 4.C语言实型数据
- 5.C语言字符型数据
- 6.C语言变量赋初值
- 7.C语言数据类型转换
- 8.C语言算术运算符和算术表达式
- 9.C语言赋值运算符和赋值表达式
- 10.C语言逗号运算符和逗号表达式
- 四. 顺序程序设计
- 1.C语言语句概述
- 2.C语言赋值语句详解
- 3.C语言数据的输入输出
- 4.C语言字符的输入输出
- 7.C语言顺序结构程序设计举例
- 五. 分支结构
- 1.C语言关系运算符和表达式
- 2.C语言逻辑运算符和表达式
- 3.C语言if语句详解
- 4.C语言switch语句的用法详解
- 5.C语言条件运算符和条件表达式
- 6.C语言分支结构程序举例
- 六. 循环控制
- 1.C语言循环控制概述
- 2.C语言goto语句以及用goto语句构成循环
- 3.C语言while语句的用法
- 4.C语言do-while语句的用法
- 5.C语言for语句用法详解
- 6.C语言几种循环的比较
- 7.C语言break和continue语句的用法
- 8.C语言循环控制程序举例
- 七. C语言数组
- 1.C语言一维数组的定义和引用
- 2.C语言二维数组的定义和引用
- 3.C语言字符数组及其应用
- 4.C语言常用字符串处理函数
- 5.C语言数组应用举例
- 6.C语言数组小结
- 八. C语言函数
- 1.C语言函数概述
- 2.C语言函数的定义
- 3.C语言函数的参数和返回值
- 4.C语言函数的调用
- 5.C语言函数的嵌套调用
- 6.C语言函数的递归调用
- 7.C语言数组作为函数参数
- 8.C语言局部变量和全局变量
- 9.C语言变量的存储类别
- 九. 预处理命令
- 1.C语言预处理概述
- 2.C语言无参数宏定义
- 3.C语言带参数宏定义
- 4.C语言文件包含命令
- 5.C语言条件编译详解
- 6.C语言预处理指令总结
- 十. C语言指针
- 1.C语言指针的概念
- 2.C语言指针变量
- 3.C语言指针变量作为函数参数
- 4.C语言指针变量的运算
- 5.C语言数组指针
- 6.C语言通过指针引用数组
- 7.C语言数组名作函数参数
- 8.C语言指向多维数组的指针
- 9.C语言字符串指针
- 10.C语言字符串指针变量与字符数组的区别
- 11.C语言函数指针变量
- 12.C语言指针型函数
- 13.C语言指针数组的概念
- 14.C语言指向指针的指针
- 15.C语言main函数参数
- 16.关于指针的总结
- 十一. 结构体和共用体
- 1.C语言结构体的定义
- 2.C语言结构类型变量的说明
- 3.C语言结构变量成员的表示方法
- 4.C语言结构变量的赋值
- 5.C语言结构变量的初始化
- 6.C语言结构体数组的定义
- 7.C语言指向结构体变量的指针
- 8.C语言指向结构体数组的指针
- 9.C语言结构体指针变量作函数参数
- 10.C语言动态存储分配
- 11.C语言链表的概念
- 12.C语言枚举类型
- 13.C语言类型定义符typedef
- 十二. 位运算
- 1.C语言位运算符详解
- 2.C语言位域(位段)
- 3.关于位运算的总结
- 十三. 文件操作
- 1.C语言文件概述
- 2.C语言文件指针
- 3.C语言文件的打开与关闭
- 4.C语言文件的读写
- 5.C语言文件的随机读写
- 6.C语言文件检测函数
- 7.C语言库文件(头文件)有哪些
- 8.文件操作小结