罗泽兵 发表于 2024-4-15 08:47:23

07.第07节课第四章选择结构程序设计

好同学们,大家好,今天呢,为大家讲解一下C语言程序设计当中,我们选择结构程序设计这一章的内容。好,我们来看一下,首先比如说在我们的程序中呢,通常会遇到这样的情况,比如说给出一个条件,给出一个条件之后呢?下面就有不同的路径让你进行运行,比如说有a方向的运行部分,有b方向的运行部分。那么在这种时候呢,

假如我们的条件它满足满足这个条件呢,我们就假设让它运行a。这一方面的内容,如果不满足这个条件呢,我们就让它运行b这一方面的内容好,运行完了之后呢,再回到程序的这样一个运行过程当中。那么,我们的C语言呢?它有两种选择,语句结构一种呢?称之为我们的if语句。用来实现两个分支的选择结构。另外一种呢,是我们的switch语句用来实现呢,

多分支的选择结构,那么这两种语句呢,我们在后面的部分呢,都会为大家进行介绍。我们的选择结构和条件判断呢?也就是说,如果我们的这样一个程序呢?它给出的这样一个条件。它满足的话,满足的话呢,我们通常呢会进行一个逻辑判断,也就是说我们这个表示这个逻辑判断的这个条件呢,如果满足。我们就说这个逻辑判断呢,它就为真为真的话呢,

就去运行我们条件为真的这个路径上的。程序结构,如果我们这个条件不满足的话,那么就说我们这个逻辑判断呢,它为假为假的话呢,它就去执行另一个方向的程序运行,那么这是我们的。选择结构那么这样一个判断的,这样一个方式。好,我们来看一个例子,比如说我们给大家讲一下if语句的这样一个例题,比如说我们要求。方程二元一次,方程ax平方加bx+c=0,

这个二元一次方程的根。那么我们知道我们的二元一次方程呢?如果。它的。判别式b平方减去4 AC大于等于零的话,这个方程呢?就有两个实根。如果b平方减4 AC不不大于零的话,也就是说b平方减4 AC小于零的话,那么我们这个方程呢,就没有实根。那么,我们来看一下我们这个程序呢?就是要先对我们的b平方减去CC是否大于等于零进行判断。判断之后呢,

如果它这个条件满足,就是b平方减4 AC这个条件满足的话。满足的话呢,我们就进行计算并输出方程的两个实根,这是一个条件。满足那么运行这样一个过程,那么如果我们这个条件b平方减4 AC。小不大于等于零不成立,就是说这个条件呢?不成立的话,那么就是b平方减4 AC呢?小于等于零,那么我们就执行另一个方向的程序运行。那么就输出此方程无实根的信息好,我们来看一下这个程序的部分,

首先呢,是井号includes tdl点h,这是我们的标准输入,输出过函数。头文件编译预处理,接下来呢,是井号include。math点h mass点h这里呢?为什么会有一个mass点h呢?我们来看一下。我们的mass呢,是我们标准的数学库函数。我们这里呢,因为要求。b平方。

减4 AC的算术平方根。求b平方减4 AC的算术平方根呢?大大当它大于零的时,大大于等于零的时候呢?我们要求它的算术平方根。求算术平方根呢,我们需要用到我们的求平方根函数sqrt sqrt呢,就是我们求算术平方根的这样一个函数。这个函数呢,是在我们的数学库函数当中,所以说我们要使用这个函求平方根的函数呢,我们就要先对我们的mass这个库函数呢,进行一个声明。再把它把它进行一个编译处理,把它进行一个头文件的这样一个形式,

将它写成我们in井号include mass点h这样一个形式,将它我们包含在我们的程序当中。好,接下来再看一下我们的程序,部分inter main。这是我们的int表示,我们的函数使用的数据类型,这里呢,我们是int型表示函数的返回一个整型的,这样一个数值。May呢,是我们的主函数,我们我们函我们的程序呢?只有一个主函数。好,

接下来看一下我们函数体的部分,在这两个大括号之间,两个花括号之间是我们的函数体,是函数的功能部分。好,我们来看数函,看一下函数题的部分,首先呢,是double ABC disc x1x2 pq。我们这里呢,是对我们的变量进行定义,double表示我们是双精度浮点型。我们定义了双精度浮点型abcd s cx 1x2 pq好,这是我们定义的。变量的部分,

接下来进行我们的数据的输入scan f。百分号lf百分号f百分号f我们输入双精度浮点型变量的值的时候呢,要用格式声明百分号lf来进行我们双精度浮点型变量的这样一个输入。好,接下来呢,是我们的这样一个取地址a取地址b取地址c,表示了取ABC的地址。取ABC这三个变量的地址,将我们输入的这样一个数据呢,放在我们的这样一个变量当中,好,这是我们数据的输入部分。接下来进行计算disc=b平方减去CC,我们计算出b平方减去CC的值呢?将它赋予给我们的disc好,

接下来呢,我们再对我们的disc。它的值呢?进行一个判断好,接下来就是我们的if语句条件判断语句好if。disc小于零,if呢,后面的这样一个括号括号当中呢,我们可以是我们的表达式,可以是我们的数值,这样一些部分。如果我们的disc小于零,它表示什么呢?表示我们的这样一个b平方减去cac,它是小于零的。

小于零,如果这个条件成立的话,条件成立说明我们if后面的这样一个括号当中的逻辑表达式啊,它这个指逻辑值啊,就为真。为真呢,就执行我们if后面的这样一个语句print of this equation hasn't real roots反七杠n就是表示我们的换行。那么就是输出我们的此方程无实根,那么这是我们的其中一个条件,它如果是这个条件呢?dsc小于零的时候呢?这个条件成立的时候呢?运行后面的这样一个程序部分,后面后面的这样一个语句,那么我们的如果我们这个条件不满足的时候呢,

就是说我们da sc小于零。它是不成立的,不成立就说明我们的b平方减去CC,它是大于等于零的,大于等于零呢,我们就。执行后面的这样一个语句else,这里的else呢,表示我们if后面的这样一个逻辑判断。不成立的时候呢,那么为假的时候呢,那么就执行后面的这样一个实现的这样一个运用部分,那么else呢表示执行我们另外一个。函数的程序的这样语句的这样一个部分,我们首先呢,

令p=-b来除以二×a。q=sqrt disc 2×a,这里呢,表示了p=2 a分之负b。负b呢来除以2 aq呢等于。disc开平方求它的算术平方根再来是除以二×a。那么最后呢,让x 1=p+qx二=p-q这里呢?就求出了方程的两根根,最后呢,进行一个输出print frail ros反斜杠n,进行一个换行。x1等于百分号七点二f反斜杠n进行一个换行x2等于百分号七点二f反斜杠n进行一个换行x1x2表示了我们x1x2值了。进行一个输出的这样一个方式,这里呢,

百分号七点二f,它表示了以。这样一个小数的形式输出,其中呢,我们的小数位,我们的这样一个这样一个数据的位数呢,占了七位。小数部分呢,占了两位,那么就是我们的七点二f,那么这样一个运用的,这样一个部分,那么最后呢?retard 0函数返回一个零值。那么最后呢?

我们的程一个大括号表示,我们的程序结束好,我们来看一下程序的输出部分,我们输入六三一。输入六三一呢,它显示this equation hasn't rule roots这方程没有时间,那么我们输入二四一它就返回。输出x1等于这样一个数值x2等于这样一个数值,那么这就是我们它程序运行的结果,那么我们来再来看一下这个条件判断。这个条件判断呢,我们首先是对我们的这里的disc小于零,这个条件呢进行判断。如果这个条件成立,那么说明呢,

我们if后面的这个括号中的逻辑判断呢,它的值就为真为真呢,就去执行我们这样一个输出方程无根的这样一个。语句部分,如果我们的disc小于零,不成立的话,那么就说明我们后面这个逻辑值呢?为假为假了就去计算x1x2,再进行输出,最后呢,我们的函数呢?就结束那么这就是我们选择结构判断的这样一个运行的方式,那么就是我们if语句的这样一个运行的运行的方式。好,我们再看一下,

用if语句呢,实现选择结构,比如说我们输入两个实数,按由小到大的顺序呢。输出这两个数,那么我们如果用if语句进行判断,怎么判断呢?那么我们来看一下这样一个首先变量的互换的方式。比如说我们要把a和b两个变量的值进行互换,我们能不能我们能不能?直接把b付给a,再把a付给b呢,那么我们一般呢?是不是这样一个运用的方式?因为呢,

我们如果把b付给a,那么这个时候呢?a呢,就和b的值是一样的,这样一个情况,那么再把a赋给b了,那么还是一样的,这样一个值的部分,因此呢,为了实现互换,必须借助第三个变量,这样一个实现的,这样一个部分。那么,我们来看一下这个程序井号include sdd nh头文件编译预处理标准输入输出库函数,

把它包含在我们的程序当中。inter main inter函数使用的数据类型返回一个整型值类,我们的主函数。两个大括号表示,这是我们的这样一个函数体的,这样一个函数的开函数体的部分float abt定义三个浮点型变量abt,接下来进行我们数据的输入sky f百分号f百分号f。f取d是h就是b输入。两个。小数,并且呢,将它放在我们的变量a和变量b当中,好,接下来呢,就是我们的条件判断的这样一个部分。

if呢,实现条件判断我们的if括号当中的a大于b,它是我们这样一个条件部分,如果a大于b这个条件成立的话。我们说说明if后面的这个逻辑判断呢,它就值为真,那么接下来呢将a。付给TB,付给at,再付给b,那么就这样呢,就实现了a和b的值互换。那么这样呢,我们就仅进行了一次交换,那么a大于b的时候呢,

就将a和b的值互换,那么接下来呢,再进行输出,按顺序呢输出a和b的值。那么这样呢,我们就进行了由小到大的顺序了,输出了这两个数,我们按照了if语句呢,实现的条件判断进行选择一。进行一次交换,那么将a和b的值互换,那么我们实现了由小到大的顺序输出这两个数,那么我们来看一下程序运行的结果,我们输入三点六负三点二,那么程序输输出的结果呢?

就是负三点二三点六,那么这是我们程序的运行的结果。好,我们再看一下,用if语句实现选择结构输入三个数ABC,要求了由小到大的顺序来进行输出。我们进我们刚才呢是对两个变量进行互换,这个时候呢,我们要比较。三个数,我们要输入三个数,按照由小到大的顺序输出,比如说。我们。看一下这样一个算法的步骤,

第一步呢,如果a大于b,那么将a和b兑换。如果a大于c,再将a和c兑换,最后呢,如果b大于c,再将b和c兑换。那么,我们按照这个方式呢进行交换,那么我们最后呢,就可以得到a和b和c,那么就是由小到大的顺序,那么这样一个部分。好,

我们来看一下程序井号includes dn h标准的输入,输出库函数,编译预处理头文件,把它包含在程序当中inter main int函数使用的数据类型,表示函数返回一个整数。v我们的这样一个主函数,两个大括号表示,我们的函数体。表示我们的函数体。我们来看一下函数题当中的部分float a bct定义四个浮点型变量a bct。接下来进行数据的输入sff百分f百分f百分f取a的地址,取b的地址,取c的地址,那么就是我们的将这样三个变量呢?将我们输入的数据放在这三个变量当中。

if a大于b,那么这个时候呢,如果a的值比b的值大的话,这个条件如果满足的话,那么if呢,后面的括号当中呢,它的逻辑值呢,就为真那么执行后面的这样一个部分。我们后面的部分呢,是a赋给TB赋给at赋给b,那么借助变量t呢,实现了a和b和的互换互换后呢?ae呢,是AB中的小轴,那么我们再看一下if a大于c,

如果a大于c这个条件成立的话,就执行if后面的语句a赋给tc,赋给at,赋给c。借助变量t呢,实现变量a和变量c的互换,互换后呢a是AC中的小,小AC中的小种,那么最后呢?if a。b大于c,那么我们还要进行一个b和c的这样一个大小的这样一个判断,如果b大于c,那么就交换a和b的值,那么借助变量t呢,

实现b和b和变量c的互换。互换后呢b呢是BC中的小者。那么,最后呢,进行输出printf百分号五点二f保定百分号五点二f百分号五点二f反斜杠n就是我们的换行ABC,那么按这个顺序来输入ABC的值,那么就是我们由小到大的顺序来进行输出。百分号五点二FL五点二f了,那么就是我们这个小数了。它的数据位数呢?有五位小数部分呢?占了两位,那么这是我们数据的这样一个形式,最后呢?return 0返回一个零值程序结束。

那么,我们来看一下程序运行的结果,输入三七一,那么最后输出的结果呢?是我们的一点零一零零三点零零七点零零,那么就是我按照我们由小到大的顺序呢?进行了一个输出,那么这是用if语句来实现的选择结构,那么我们接下来看一下if语句的一般形式if呢?它的一般形式,那么是我们的if后面是一个括号,后面呢,再是它的要运行的语句就是我们的if了,后面的语句。这是我们的if的一般形形式,

那么我们来看一下它的三种形式的部分,第一种形式啊,是没有else的语句那么。这样一个是什么呢情况呢?if表达式语句一也就说我们如果满足if后面的这个括号中的表达式逻辑是为真的话,那么我们就运行if后面的这样一个语句一。如果不满足这样一个表,表达式不成立就逻辑式为假的话,那么就不执行后面的语句一,那么这是第一种形式。那么,我们还有第二种形式,有else子句部分,那么依然呢?前面是if表达式语句,

一如果表达式的是成立的话,那么就执行语句一那么。那么,如果表达式的值不成立,那么就是else其他的情况的部分,那么就执行我们的语句二,那么就是我们有else子句的部分。那么我们再看一下形式,三在else部分呢,又嵌套了多层的if语句,那么我们来看一下if表达式一。如果我们满足if后面的这样一个表达式一,那么我们就执行语句一,那么如果呢?是else if表达式二,

是另外一种这样一个情况的话,那么我们就执行表达式语句二。那么,如果呢,是表达式m的话,是满足这样一个表达式m的话,就执行表达式语句m,如果呢,是其他的,另外的这些不满足的这样一些。部分的这样一些其他情况的话,那么我们就执行了else后面的语句m+1,另外的这样一个语句我们。if后面的这个括号中的表达式呢,可以是关系表达式,

逻辑表达式,甚至呢,可以是数值表达式。框括号中的部分,也就说我们的l次序呢,是可选的,既可以有也可以没有,比如说我们的形式,一当中我们可以呢。我们可以,我们就没有else子句的这样一个部分语句一和语句二呢,可以是一个简单的语句,也可以是复合语句,另外呢,还可以是另外一个if语句,

那么这是我们。语句当中的这样一个形式的部分。那么,我们来看一下关系运算符和关系表达式,在C语言中呢,比较符称为关系运算符。所谓的关系运算呢,就是比较运算,将两个数值呢进行比较。比判断其比较的结果呢,是否符合给定的条件,我们的关系运算符我们来看一下,关系运算符呢,有我们的小于小于等于大于大于等于等于和不等于。我们前四种关系运算符呢?

级别相同,后两种也相同,前四种呢?高于后两种关系运算符的优先级呢?低于算术优先运算符。关系运算符的优先级呢,高于复制运算符,比如说我们来看一下这样一个表达式c大于a+b。那么,我们的关系运算符的优先级呢?低于算术运算符,所以呢,它等效于c大于括号a+b计算a+b的值呢?再来进行我们的这样一个关系运算c大于a+b的这样一个值的这样一个运算部分。第二个a大于b等等等c,

我们大于运算符的优先级呢,高于相等运算符,所以呢?它等效于了a,大于b。再来进行关系运算等等c这样一个运算。那么a等等b小于c由于小于运算符的这样一个优先级呢?高于相等运算符,那么它等效于了a等等括号AB小于c。先计算,先运算,我们的这样一个b小于c再来进行我们这样一个关系运算的这样一个部分,那么这样一个a等等括号b-b小于c的这样一个运运算部分。那么a=b大于c了,那么等由于我们关系运算的优先级要高于复制运算符,

那么它等效于了a等于括号b大于c先。计算我们括号中的这样一个b大于c,那么再来进行我们这样一个负这样一个a等于。括号b+c的这样一个b大于c的这样一个值的部分。我们的关系运算符呢,将两个数值或数值表达起来的式子呢,称为关系表达式,关系表达式的值呢,是一个逻辑值,那么就是我们真或者为假。在C语言的逻辑运算中呢,我们以一代表真,零代表假,比如说我们这样一个例子。若a=3 b,

等于2 c=1,那么就是三赋给AB,二赋给b,一赋给c。d等于。a大于b,那么这样一个式子啊,由于a大于b为真,所以呢,关系运算表达式。a大于b的值呢,为一所以呢,最后要进行负值d的值呢,为一。f=a大于b大于c,

那么我们的。先执行a大于b,得到了值为一。再执行关系运算一大于c。那么,这里为得得值为零。再赋给f了,所以f的值为零,这是我们关系表达式,那么关系运算的这样一个部分。逻辑运算符和逻辑表达式用逻辑运算符呢?将关系表达式和其他。逻辑量连接起来的式子呢?就是逻辑表达式。我们来看一下逻辑运算符及其优先次序,

我们运算符呢,有感叹号,取地址号,还有两个竖线。它的含义呢?感叹号呢?是逻辑非。取地址的这样一个符号呢,是逻辑语两个竖线呢,表示逻辑或。我们来举一个例子,比如说我们一个感叹号a表示了我们的非a。如果a为假的话,那么。非a为真,

如果a为真的话,那么非a为假。那么我们再看一下逻辑与a,逻与BA,与a和b呢进行与运算,如果a和b呢同时为真,那么我们的结果呢为真。否则呢,为假就说a为假b为真,或者说a为真b为假,或者说a和b都为假的时候呢?那么我们的结果呢?就为真,为为假,为假,

为假,为假的,这样为假的,这样一个部分。那么,我们的逻辑或比如说a或b,如果a和b呢,有一个以上为真,则结果为真。当二者同时为假的时候呢,结果为假就是当a为假且b为假的时候呢,那么我们的结尾假那么这样一个部分。我们的或和与运算都是双目运算符要求呢,有两个运算对象。非了感叹号是单步运算符,

只要了有一个运算对象,我们的优先次序呢是。逻辑非。逻辑与和逻辑或那么说,逻辑非呢是三者中最高的逻辑运算符中的与和或低于关系运算符。非非运算符呢?高于算术运算符。逻辑运算的结果呢?要么是零,要么是一,不可能是其他数值。而在逻辑表达式中,作为参加逻辑运算的运算对象呢?可以是零,或者说任何非零的数值。

那那我们来看一下这样一个表格当中的部分。假设我们a和b呢?那么有一些取取值的这样一些类型,当a为真。b为真的时候呢?就是a和b呢是非零的时候,它是为真的时候呢,那么非a呢,就为假非b呢,也为假。a逻逻辑与a和b呢进行与运算,它的值为真a或b,它的值也为真。那么,当a为真?

b为假的时候呢,那么非a为假,非b为真a和b呢进行逻辑与运算,它的结果呢是假?a和b呢进行逻辑或运算,它的值为真,当a为假。b为真的时候呢,非a为真,非b为假。a和b进行逻辑运算,它的值呢?为假a和b呢?进行逻辑或运算,它的值为真。

当a为假b为假的时候呢?非a为真,非b为假a和b进行逻辑运算,它的值为假。a或b呢,它也为假,那么这是我们逻辑运算,那么这样一个运算的,这样一个部分的,这样一个内容。


页: [1]
查看完整版本: 07.第07节课第四章选择结构程序设计