例题 | 顺序结构的实践

输入一个三位整数,求各位、十位、百位相加之和

解析
算法的设计

  1. scanf函数的应用
  2. 算术运算符的应用(/、%)
  3. printf函数的应用

答案

#include<stdio.h>
int main()
{
    int a,b,c,d,s;
    scanf("%d",&a);
    b = a/100;
    c = a/10%10;
    d = a%10;
    s = b+c+d;
    printf("%d",s);
    return 0;
}

更标准的写法如下,对照参考
答案

计算C语言表达式

关系运算符

关系表达式



算术运算符:加、减、乘、除、加加、减减
关系运算符:本节课的 ≥ 这些
赋值运算符:=、+=、-=




例题

计算下列表达式的值:(优先级、结合性
定义:int a = 2,b = 3,c = 1;
求:

c > a + b                =>        ?    c > (a + b)
a > b != c               =>        ?    (a > b) != c
a == b < c               =>        ?    a == (b < c)
a = b > c                =>        ?    a = (b > c)
c = a == b               =>        ?   c = (a == b)
f = a > b > c            =>        ?    f = (a > b > c)

逻辑运算符

含义

逻辑运算符的左右结合性

     | 1 / x + 1 / a    当x≠0,a≠0时
y =  |                                            x != 0 && a != 0
     | 10000            其他

分类

三种逻辑运算符
! (逻辑非) 操作位真(假),!运算结果为假(真)。(单目运算符,取反计算


&& (逻辑与) 两个操作数都为真时,&&运算结果为真。


|| (逻辑或) 两个操作数之一为真时,||运算结果为真。

逻辑表达式

含义

用逻辑运算符将关系表达式或逻辑量连接起来的表达式。
a < b && b < c   a < b || b < c  ! (a < b)

优先级

从高到低排序

逻辑表达式的重点

计算
逻辑表达式的求解中,并不是所有的逻辑运算符都被执行。
例:int m=1,n=1,a=1,b=2,c=3,d=4;
执行(m=a>b)&&(n=c>d)后,n的值?
构造
用C语言构送下面逻辑表达式:

  1. a ≥ b ≥ c
    a >= b >= c
    a >= b && b >= c
  2. a和b之一为0,但不同时为0
    a == 0 && b != 0 || a != 0 && b == 0;
    a * b == 0 && a + b != 0

if语句的格式一

if(表达式)     //表达式 相当于 条件
{
    执行语句 1 ......
}
表达式的值只能是0或非0,若表达式的值为0,按“假”处理,若表达式的值为非0,按“真”处理,执行{}中的语句。
执行过程

if语句格式一的应用

分析程序:

int main()
{
    int a,b,max;
    printf("\n input two numbers.");
    scanf("%d%d",&a,&b);//输入a和b两个数字
    max=a;
    if (max<b);
    {
        max=b;
    }
    printf("max=%d",max);
    return 0;
}

练习
编写一个简单程序,输入你的分数,如果分数大于90分,则输出“verygood!"。

if语句的格式二

if(表达式)
{
    执行语句1 .......
}
else
{
    执行语句2 ......
}

语句2的执行过程

if语句格式二的应用

int main()
{
    int a, b;
    printf("input two numbers: ");
    scanf("%d%d",&a,&b);
    if(a>b)    //没有逗号
    {
        printf("max=%d\n",a);
    }
    else            //没有逗号,没有条件
    {
        printf("max=%d\n",b);
    }
    return 0;
}

练习

根据下列公式编写程序实现输入x和a的值,输出y的值。

答案


2024-06-08T11:29:44.png

if语句的格式三

if(表达式1)
{
    语句1
}
else if(表达式2)        //else if:否则另一个
{
    语句2
}
else if(表达式3)
{
    语句3
}...
else if(表达式m)
{
    语句m
}
else
{
    语句n
}

语句3执行过程

if语句的嵌套

if语句可以嵌套,即一个i语句中又可以包含一个或多个i语句。一般
形式(形式之一):

if(表达式1)
{
    if(表达式2)
    {
        语句1
    }
    else
    {
        语句2
    }
}
else
{
    if(表达式3)语句3
    else 语句4
}

缺省花括号的情况下,else总是与最邻近的if配对。要注意if、else的层级关系,可提高程序可读性,但改变不了配对属性。

例题

输入:输入游览月份存储到变量month中,输入游客年龄存储到变量age中,景点门票单价存储到变量price中。输出:游客应付门票金额money
判断条件:先判断是淡季还是旺季,再在淡季或旺季条件内判断游客年龄
处理:根据淡季或旺季、游客年龄计算票价并输出
参数:我们设定老人0元,儿童半价,设票价200。旺季4-10月,淡季:11-3月。老年人:70以上(不包括70)。儿童:15以下(不包括15)

处理过程


处理过程

答案


答案
也可以只在结尾输出一个printf,中间的几个可以省略

简介答案,仅供参考思路

Switch语句

switch语句的格式

2024-06-08T11:49:35.png

switch语句的格式(多分支)

在switch语句中使用break语句:
break语句也称间断语句。可以在各个case之后的语句最后加break语句,每当执行到break语句时,立即跳出switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正起到多个分支的作用。

适用于根据一个表达式的值就可以确定走哪个分支的情况

switch(表达式)
{
    case 目标值1:
        执行语句1
        break;
    case 目标值2:
        执行语句2
        break;
        ......
    case 目标值n:
        执行语句n
        break;
    default:
        执行语句n+1
        break;
}

有break时,执行完跳出switch,没有时,继续执行下一个case,直到遇到break ↓

switch语句的应用

int main()
{
    int score;
    printf("\n input your score: ");
    scanf("%d",&score);
    switch(score/10)
    {
    case 10: printf("A");break;
    case 9: printf("B");break;
    case 8: printf("c”);break;
    case 7: printf("D");break;
    case 6: printf("E");break;
    default: printf("F”);
    }
    return 0;
}





最后修改:2024 年 06 月 08 日
如果觉得我的文章对你有用,请随意赞赏