![C语言从入门到精通(第6版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/763/52842763/b_52842763.jpg)
2.2.2 流程图
流程图用图框来代表不同性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛。
1.流程图符号
在表2.1中列出了一些常见的流程图符号,其中,起止框用来标识算法的开始和结束;输入/输出框用来表示数据的输入和输出;判断框用来判断给定的条件,根据条件成立与否来决定如何执行后续操作;处理框用来表示变量的计算或赋值;流程线用于表示算法的流向;注释框用于表示算法的注释;连接点用于将画在不同地方的流程线连接起来。
表2.1 流程图符号
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-T43_69038.jpg?sign=1738840337-XLNR3dteJ4gentqkWL2pEL0JCp1juCYr-0-616b3ea5eaae2724ada70de251e1577c)
为了提高算法质量,Bohra和Jacopini提出了3种基本结构,即顺序结构、选择结构和循环结构,且任何一个算法都可由这3种基本结构组成。这3种基本结构之间可以并列,也可以相互包含,但不允许交叉,即不允许从一个结构直接转到另一个结构的内部去。
2.顺序结构
顺序结构是最简单的线性结构。在顺序结构的程序中,各操作按照它们出现的先后顺序执行。如图2.1所示,在执行完A框指定的操作后,接着执行B框指定的操作。顺序结构中只有一个入口点A和一个出口点B。
【例2.3】输出数学、语文成绩。
本实例要求输入两个数,代表数学、语文成绩,分别赋给变量math和chinese,再将这两个数输出。其流程图可以采用顺序结构来实现,如图2.2所示。
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P44_69039.jpg?sign=1738840337-BaoRr64jbl5tVovh9O8HTG7Q96JivCOa-0-67b420d6c6a0fca7c751bd2d8aea8fd5)
图2.1 顺序结构
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P44_69040.jpg?sign=1738840337-qkC4b1tz3DiVGq37cYJQSZJmiS2TyQ3R-0-dc3b7199ed4bd95702571b3d2952e4c0)
图2.2 输出数学、语文成绩
3.选择结构
选择结构也称为分支结构,其常见形式有两种,如图2.3和图2.4所示。
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P44_69043.jpg?sign=1738840337-4lzNlEZlTfdoYt4qef8HzJoEBjQNcv8y-0-3ff76bd1f93ea2ab96dde610d2f39f69)
图2.3 选择结构1
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P44_69044.jpg?sign=1738840337-bzjEGs77GwDLFVlXAoxTRG9gnSSb2F68-0-e5eda4030df998ce219fc87aa649c1ff)
图2.4 选择结构2
选择结构中必须包含一个判断框。图2.3所代表的含义是:根据给定的条件P是否成立,选择执行A框还是B框。图2.4所代表的含义是:根据给定的条件P进行判断,如果条件成立则执行A框,否则什么也不做。
【例2.4】判断输入的数是否为偶数。
本实例要求输入一个数,判断该数是否为偶数,并给出相应提示。其流程图可以采用选择结构来实现,如图2.5所示。
4.循环结构
在循环结构中,会反复地执行一系列操作,直到条件不成立时才终止循环。按照判断条件出现的位置,可将循环结构分为当型循环结构和直到型循环结构。
当型循环的流程结构如图2.6所示。先判断条件P是否成立,如果成立,则执行A框;执行完A框后,再判断条件P是否成立,如果成立,接着再执行A框;如此反复,直到条件P不成立为止,此时不执行A框,跳出循环。
直到型循环的流程结构如图2.7所示。先执行A框,然后判断条件P是否成立,如果条件P成立则再执行A;然后判断条件P是否成立,如果成立,接着再执行A框;如此反复,直到条件P不成立,此时不执行A框,跳出循环。
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P45_69047.jpg?sign=1738840337-t8A3HYrVuGp3aOV9G8hPJ9Rc0r7r4CHG-0-608a8e8c5579faf7fafecdb659b199bd)
图2.5 判断一个数是否为偶数
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P45_69048.jpg?sign=1738840337-65BoQOq0AFOIjv21LosZviYQOmcxbUnz-0-d9d8c7b40f6efa13aeb8545290c011eb)
图2.6 当型循环
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P45_69049.jpg?sign=1738840337-MqmeoCVcEZFGl5qsboaMnDDrMp9xrBSU-0-725dd4296069f81b955da241ffb01f35)
图2.7 直到型循环
【例2.5】计算1+2+3+…+100的结果。
本实例要求计算1和100之间(包括1和100)所有整数之和。其流程图可以用当型循环结构来表示,如图2.8所示;也可以用直到型循环结构来表示,如图2.9所示。
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P45_69052.jpg?sign=1738840337-wYxIkHfFCDOMVwHVRzLTPGOCMIoyQmsO-0-18de18fbe06204945a57265c93973781)
图2.8 当型循环结构求和
![](https://epubservercos.yuewen.com/D46D3D/31398171704520606/epubprivate/OEBPS/Images/Figure-P45_69053.jpg?sign=1738840337-BpSNOGlKdQj0C2eIh5XayPdX2bcoDBdu-0-7366ed762b6d8affa485aae6a877a01e)
图2.9 直到型循环结构求和