0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从零开始跟我学C语言之分支结构(上)

Linux迷 来源:linux迷 2023-02-06 10:14 次阅读

Hi!这里是渔火。

今天我们来讲分支结构。计算机在执行程序时,通常都是按照语句的书写顺序执行的,但在许多情况下需要根据条件选择所要执行的语句,这就选择所要的语句。C语言中用于实现分支结构的控制语句主要有:if语句、switch语句。

我们来看一个例子感受下分支结构。

【1.1】输入三角形的三条边,判断能否构成三角形,若能则计算并输出三角形的面积,否则给出出错提示。


#include
#include
//2023.2.1渔火 Linux迷 www.linuxmi.com
int main()
{
  int a,b,c;
  float ar;
  double s;
  printf("请输入三角形的三条边长");
  scanf("%d,%d,%d",&a,&b,&c);
  s=(a+b+c)/2.0;
  if(a+b<=c||b+c<=a||a+c<=b)
    printf("不能构成三角形
");
  else {
    ar=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("三角形的面积是:%f
",ar);
  } 
          //2023.2.1渔火 Linux迷 www.linuxmi.com
  return 0;
}
运行结果如下:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 gcc -o linuxmi linuxmi.c -lm


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 ./linuxmi
请输入三角形的三条边长7,8,9
三角形的面积是:26.832815
773deb24-a565-11ed-bfe3-dac502259ad0.png

分析:程序运行时,首先输入三角形的三条边,分别保存在三个整型变量a,b,c中,然后根据三角形的构成条件,判断任意两条边之和是否大于第三边。如果不满足这个条件,则三条边不能构成三角形,如果满足这个条件,就可以根据相应的公式计算三角形的面积。

1、关系运算符。关系运算符用于判断两个操作数的大小关系。

注意:(1)关系运算符都是双目运算符,其结合方向是左结合。(2)关系运算符的优先级低于算术运算符,但高于赋值运算符。(3)关系运算符中,>、<、>=、<=的优先级相同,==、!=的优先级相同,前者的优先级高于后者。

2、关系表达式。用关系运算符将两个表达式链接起来的式子称为关系表达式。关系表达式的一般形式为:表达式1关系运算符 表达式2.功能:比较两个表达式的大小,返回一个逻辑值。关系表达式中允许出现嵌套的情况。

注意:(1)注意区分运算符”=“和”==“。”=“是赋值运算符,”==“是关系运算符。(2)对实数进行相等判断可能得不到正确的结果。(3)关系表达式中可以出现赋值运算符。

关系表达式主要用于分支结构的条件判断。关系表达式的结果是一个逻辑值”真“或”假“,由于C语言中没有逻辑值类型的数据,因此用”1“表示“真”,”0“表示”假“。

【2.1】关系运算

#include
//2023.2.1渔火 Linux迷 www.linuxmi.com
int main()
{
  
  char c='m';
  int i=10,j=20,k=30;
  float x=13e+5,y=10.85;
  printf("%d,%d",'a'+5=k+1);
  printf("%d,%d",1
运行结果如下:

776497c4-a565-11ed-bfe3-dac502259ad0.png


1、逻辑运算符。关系表达式只能描述描述单一的条件。然而逻辑运算符可以将若干个关系表达式连接起来才能更好的描述条件,

注意:与运算符&&和或运算符||都是双目运算符,非运算符!为单目运算符。

2、逻辑运算符。用逻辑运算符将两个表达式链接起来的式子称为逻辑表达式。逻辑表达式的一般形式为:表达式1 逻辑运算符 表达式2或逻辑运算符 表达式1。逻辑表达式的结果也是一个逻辑值”真“或”假“,即为”1“或”0“。

小白提示:

(1)参与逻辑运算的数据可以是1和0,也可以是非零值和0,还可以是任何类型的数据,但最终都是以非0和0来判断他们是”真“或”假“。

(2)在逻辑表达式中也可以使用赋值运算符。

(3)C语言规定,只对决定整个表达式值所需的最少数目的子表达式进行计算。即由在若干个子表达式组成的逻辑表达式中,从左向右计算,当计算出一个子表达式的值就确定了整个逻辑表达式的值,之后就不再计算右边的剩下的子表达式的值,这种情况称之为”短路“。

【3.1】逻辑运算符


#include
#include
//2023.2.1渔火 Linux迷 www.linuxmi.com
int main()
{
  
  int a=8,b=8,c=6,d;
  printf("%d,",!a&&!b&&c);
  printf("%d,",!a||!b||c);
  printf("%d
",a>=b&&b>c);
  d=c--||(b-6)&&a++;
  printf("a=%d,b=%d,c=%d,d=%d
",a,b,c,d);
            //2023.2.1渔火 Linux迷 www.linuxmi.com 
  return 0;
}


运行结果如下:

7777cea2-a565-11ed-bfe3-dac502259ad0.png

1、条件运算符。条件运算符由”?“和”:“两个符号组成,用于条件求值,它是一个三目运算符,需要三个操作数。条件运算符的优先级低于逻辑运算符、高于赋值运算符,它是右结合。

2、条件表达式。由条件运算符将3个表达式连接起来的式子称为条件表达式,其一般形式为:表达式1?表达式2:表达式3。条件表达式的执行顺序是先计算表达式1的值,如果值不为0,表示条件为真,否则表达式2 的值作为整个条件表达式的值,否则表达式3的值作为整个条件表达式的值。

小白提示:

(1)条件表达式中的表达式1的类型可以与表达式2和表达式3不同,表达式2和表达式3的类型也可以不同,此时系统会自动进行转换,结果为表达式2 和表达式3中级别类型较高的,并将其作为条件表达式的类型。

(2)条件表达式中表达式2和表达式3不仅可以是数值表达式,还可以是赋值表达式或函数表达式。

(3)条件表达式允许嵌套。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    85

    文章

    10181

    浏览量

    205803
  • Switch
    +关注

    关注

    1

    文章

    463

    浏览量

    57132
  • C语言
    +关注

    关注

    179

    文章

    7188

    浏览量

    117639
  • 三角形
    +关注

    关注

    0

    文章

    20

    浏览量

    11071
  • 数值
    +关注

    关注

    0

    文章

    59

    浏览量

    14222
收藏 人收藏

    评论

    相关推荐

    从零开始单片机C语言

    从零开始单片机C语言》是单片机入门教材。
    发表于 04-21 10:04

    从零开始电路基础》(从零开始电子技术丛书)

    从零开始电子测量技术].李建清.扫描版.pdf[从零开始CPLD和Verilog.HDL编程技术].李建清.扫描版.pdf[从零开始单片机C语言].李建
    发表于 06-05 23:12

    从零开始单片机C语言——PDF

    从零开始单片机C语言].李建清.扫描版`
    发表于 09-29 16:28

    从零开始单片机C语言,很全的资料

    从零开始单片机C语言,很全的资料需要的网盘里取从零开始单片机C语言,PDF版分享在网盘了。 链接: http://pan.baidu.com/s/1dDIuTlJ 密码: 9wvg `
    发表于 07-22 09:20

    从零开始电子》丛书全套网盘分享

    从零开始模拟电子技术链接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取码:othe【从零开始电子丛书】从零开始单片机C语言链接:https
    发表于 06-28 18:45

    初学者都在看!!从零开始单片机C语言从零开始电子丛书】

    从零开始单片机C语言从零开始电子丛书】
    发表于 07-27 15:32

    跟我学数字电路

    跟我学数字电路
    发表于 04-09 23:09 117次下载

    从零开始单片机C语言.haozip02

    从零开始单片机C语言.haozip02,论坛只允许上传小于20M的压缩包, 总共分两卷,需要下载两个压缩包才能解压成功。
    发表于 08-16 18:54 9次下载

    从零开始单片机C语言.haozip01

    从零开始单片机C语言.haozip01,论坛只允许上传小于20M的压缩包, 总共分两卷,需要下载两个压缩包才能解压成功。
    发表于 08-16 19:37 48次下载

    从零开始电源

    从零开始电源
    发表于 02-16 10:39 135次下载

    C语言程序设计教程之分支结构程序设计的课件免费下载

    C语言程序设计教程之分支结构程序设计的课件免费下载。
    发表于 12-10 17:16 6次下载
    <b>C</b><b>语言</b>程序设计教程<b>之分支</b><b>结构</b>程序设计的课件免费下载

    跟我学C语言之顺序结构

    C 语言的顺序结构。所谓顺序结构就是按照程序代码的书写顺序,自上而下依次执行。我们来看一个例子,感受下顺序结构
    发表于 02-02 10:06 262次阅读

    从零开始跟我学C语言之分支结构(下)

    C语言分支结构。在C语言里,可以使用if-else实现分支结构
    的头像 发表于 02-07 09:27 190次阅读

    从零开始跟我学C语言之循环结构

    C语言中的循环结构。循环结构结构化程序设计中的基本结构之一。循环结构在程序设计中的应用很普遍,几乎所有具有实用价值的应用程序中都包含着循环结构。循环结构的特点是
    的头像 发表于 02-10 15:30 262次阅读

    从零开始跟我学C语言之循环结构(下)

    C语言中,使用while语句完成不定次数的循环,如果满足循环条件,则反复执行循环体语句,当循环条件不满足时退出循环。while语句在使用时,总是先要判断一个条件,使用可以用while语句实现“当型”循环。while语句的一般形式如下:while(表达式)循环体;。接下来我们来看一个例子。
    的头像 发表于 02-12 17:27 299次阅读