C语言之分支结构

流程控制

如何看懂一个程序

  • 流程
  • 每个语句的功能
  • 试数

对一些小算法的程序

  • 尝试自己去编程解决它,大部分人都自己无法解决
  • 如果解决不了,就看答案
  • 关键是把答案看懂,这个要花很大的精力,也是我们学习的重点
  • 看懂之后尝试自己去修改成功,并且知道修改之后程序的不同输出结果的含义
  • 照着答案去敲
  • 调试错误
  • 不看答案,自己独立把答案敲出来
  • 如果程序实在无法彻底理解,就把它背会

1、什么是流程控制

  程序代码执行的顺序

2.流程控制的分类

  • 顺序执行
  • 选择执行
  • 循环执行

选择

定义:某些代码可能执行,也可能不执行,有选择的执行某些代码

分类:

 

1. if最简单的用法

格式:if (表达式)

     语句

功能:

如果表达式为真,执行语句

不成立,语句不执行

#include <stdio.h>

int main(void) 
{
    
    if (3 > 2)
        printf("AAAAA\n");

    return 0;
}

 

 #include <stdio.h>

int main(void)
{

    if (3)
        printf("AAAAA\n");  //输出AAAAA

    if (0)
        printf("BBBBB\n");  //不输出BBBBB

    if (0 == 0)
        printf("CCCCC\n");  //输出CCCCC

        return 0;
}

2.if...else...的用法

#define  _CRT_SECURE_NO_WARNINGS 1
# include <stdio.h>

int main(void) 
{
    int i, j;
    scanf("%d %d", &i, &j);

    if (i > j)
        printf("i大于j\n");

    else
        printf("i小于j\n");
}

3.if...else if...else的用法

# include <stdio.h>

int main(void) 
{
    int delta = 3;

    if (delta > 0)
        printf("有两个解\n");

    else if (delta < 0)
        printf("有一个解\n");
    else
        printf("无解\n");

    return 0;

}

4.if举例--求分数的等级

 1 #define  _CRT_SECURE_NO_WARNINGS 1
 2 # include <stdio.h>
 3 
 4 int main(void) 
 5 {
 6     float score;
 7 
 8     printf("请输入您的考试成绩:");
 9     scanf("%f", &score);
10     if (score > 100)
11         printf("做梦\n");
12     else if (score >= 90 && score <= 100) //不能写成90<=score<=100 因为会一直为1为真
13         printf("优秀\n");
14     else if (score >= 80 && score < 90)
15         printf("良好\n");
16     else if (score >= 60 && score < 80)
17         printf("及格\n");
18     else if (score >= 0 && score < 60)
19         printf("不及格,继续努力!\n");
20     else
21         printf("输入的分数过低,不要如此自卑!\n");
22 
23     return 0;
24 
25 }

5.if的常见问题解析

5.1 if空语句的问题

if (3 > 2);
等价于
if (3 > 2)
    ; //这是一个空语句

 

互换两个数字

#include <stdio.h>

int main(void)
{
    int i = 3;
    int j = 5;
    int t;
    
    t = i;
    i = j;
    j = t;

    printf("i=%d, j=%d\n", i, j);

    return 0;
}

数字降序排列

 1 #define  _CRT_SECURE_NO_WARNINGS 1
 2 # include <stdio.h>
 3 
 4 int main(void) 
 5 {
 6     int a, b, c,t;
 7     
 8     printf("请输入三个整数(中间以空格分隔):");
 9     scanf("%d %d %d", &a, &b, &c);
10 
11     //编写代码完成a是最大值 b是中间值 c是最小值
12     if (a < b )
13     {
14         t = a;
15         a = b;
16         b = t;
17     }
18      if (a < c )
19     {
20         t = a;
21         a = c;
22         c = t;
23     }
24      if (b < c)
25      {
26          t = b;
27          b = c;
28          c = t;
29      }
30 
31     printf("%d %d %d\n", a, b, c);
32     return 0;
33 }

6.switch

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main(void)
{
    int val;

    printf("请输入您需要进入的楼层:");
    scanf("%d", &val);

    switch (val)
    {
    case 1:
        printf("1层开!\n");
        break;
    case 2:
        printf("2层开!\n");
        break;
    case 3:
        printf("3层开!\n");
        break;
    default:
        printf("还没有盖到这一层");
        break;
    }
}

 

posted @ 2024-04-08 21:03  万溪汇海  阅读(1)  评论(0编辑  收藏  举报