C语言程序设计第四章(分支结构程序设计)总结

本文详细介绍了C语言中的分支结构,包括关系运算符、逻辑运算符、条件运算符的使用,通过实例展示了if-else、单分支if、if语句嵌套、多分支if语句以及switch语句的执行流程和应用。通过对各种分段函数的编程实现,深入理解条件判断在程序设计中的应用。
摘要由CSDN通过智能技术生成

4.1        引例

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

例4.1:
#include<stdio.h>
#include<math.h>
int main()
{
    int a, b, c;
    float area;
    double s;
    printf("请输入三角形的三条边长:");
    scanf_s("%d,%d,%d", &a, &b, &c);
    s = (a + b + c) / 2.0;
    if
    (a + b <= c || b + c <= a || a + c <= b)
        printf("不构成三角形\n"); 
    else
    {
        area = sqrt(s * (s - a) * (s - b) * (s - c));
        printf("三角形面积是:%f\n", area);
    }
    return 0;
}

运行结果:

请输入三角形的三条边长:3,4,5

三角形的面积是:6.000000

【例4.2】编写程序,输入x的值,按以下分段函数计算并输出y的值。

                                                1/x        x≠0

                                y=f(x)=      

                                                0          x=0

例4.2:
#include<stdio.h>
int main()
{
 int x;
 float y;
 printf("输入x的值:");
 scanf_s("%d", &x);
 if (x != 0)
  y = 1.0 / x;
 else
  y = 0;
 printf("%d,%f", x, y);
 return 0;
}

运行结果1:

输入x的值:2

2,0.500000

运行结果2:

输入x的值:0

0,0.000000

说明:程序中用到了逻辑运算符“!”,含义是“非”。

4.2        关系运算符、逻辑运算符、条件运算符

<4.2.1>        关系运算符和关系表达式

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

表4.1 关系运算符
运算符 含义
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于

注意:

(1)关系运算符都是双目运算符,其结合方向是左结合。

(2)关系运算符的优先级低于算术运算符,但是高于赋值运算符。

(3)关系运算符中,>、<、>=、<=的优先级相同==、!=的优先级相同前者的优先级高于后者,即“>=”的优先级高于“==”

2.关系表达式:用关系运算符将两个表达式连接起来的式子称为关系表达式。

关系表达式的一般形式为:

                                     表达式1 关系运算符 表达式2

关系表达式中允许出现嵌套的情况,例如:“a>(b>c)”、“a!=(c==d)”等。

注意:

(1)注意区分运算符“=”和“==”。“=”是赋值运算符“==”是关系运算符

(2)对实数进行相等判断可能得不到正确的结果,例如“1.0/3*3.0==1.0”的结果为0。

(3)关系表达式中可以出现赋值运算符,如“a>(b=0)”,但是不能写成“a>b=0”的形式。因为关系运算符的优先级高于赋值运算符,表达式“a>b=0”相当于“(a>b)=0”,赋值运算符左边不是变量,会出现编译错误。

关系表达式主要用于分支结构中的条件判断。关系表达式的结果是一个逻辑值“真”或“假”用“1”表示“真”,“0”表示“假”例如关系表达式“(a=3)>(b=8)”的值为0.

【例4.3】关系运算示例。

例4.3:
#include<stdio.h>
int main()
{
 char c = 'm';
 int i = 10, j = 20, k = 30;
 float x = 13e+5, y = 10.85;
 printf("%d,%d,", 'a' + 5 < c, -i - 2 * j >= k + 1);
 printf("%d,%d,", 1 < j < 5, x - 5.25 <= x + y);
 printf("%d,%d\n", i + j + k == -2 * j, k == j == i + 5);
 return 0;
}

运行结果:

1,0,1,1,0,0

<4.2.2>        逻辑运算符和逻辑表达式

1.逻辑运算符:关系表达式只能是描述单一的条件。

表4.2 逻辑运算符
运算符 && ||
名称 逻辑非 逻辑与 逻辑或
结合性 右结合 左结合 左结合
优先级

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

2.逻辑表达式:用逻辑运算符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值