C语言----多路分支(进阶篇十九)

 

  if多路分支

    格式:

      if(表达式)

      {

        若干语句

        …

      }

      else if(表达式)

      {

        若干语句

        …

      }

      else if(表达式)

      {

        若干语句

        …

      }

      else

      {

        若干语句

        …

      }

    程序1

      学校将考试成绩分为3档,0-59分为不及格,60-89分为及格,90-100分为优秀。现在请编一程序,由老师输入一个学生成绩,计算机判断这个成绩在哪一档,并在屏幕上显示。

         

// 19-1成绩条件输出.c

/*学校将考试成绩分为3档,
0 - 59分为不及格,60 - 89分为及格,
90 - 100分为优秀。现在请编一程序,
由老师输入一个学生成绩,计算机判断这个成绩在哪一档,并在屏幕上显示*/
#include <stdio.h>
main()
{
    float grade;
    scanf_s("%f", &grade);
    if (grade > 0 && grade < 60) printf("没到60分,不及格,加油啦...
");
    else if (grade > 59 && grade < 90) printf("已及格,继续努力...
");
    else if (grade > 89 && grade <= 100) printf("优秀,歇歇吧给后面的学生一个机会!
");
    else   printf("%g分数有误!重新打开输入
", grade);
}

  switch语句和break语句

    格式:

      switch (表达式)

      {

        case 常量表达式1:语句1

        case 常量表达式2:语句2

        ……

        case 常量表达式n:语句n

        default:语句n+1;

      }

 

    程序2

      写一个程序供老师查询A、B、C三档分数各在什么范围

        

// 19-2switch语句查询.c
//写一个程序供老师查询A、B、C三档分数各在什么范围
#include <stdio.h>

main()
{
    char a;
    scanf_s("%c", &a);
    switch (a)
    {
    case 'A':
        printf("90-100为A
");
        break;
    case 'B':
        printf("60-89为B
");
        break;
    case 'C':
        printf("0-59为C
");
        break;
    default:
        printf("输入格式错误
");
    }
}

    ※switch语句出现嵌套时,break只会跳出本层switch

    ※default相当于if中的else

    ※break不对if语句起作用。

    ※case如果后面没有break,程序会继续向下执行,而不会跳出switch,如:

      int a=1;

      switch(a)

      {

        case 1:printf(“1 ”);

        case 2:printf(“2 ”);

      }

      这时1和2都会打印在屏幕上。

    ※case后面只能是常量表达式,不能是变量,如:

      case 1+2:

      case ‘a’:

      case 1<2:

        都是合法的,而

      switch(a)

      {

        case a:

        case a<5:

      }

      因为a是变量,两条语句都不合法

    程序3

      投票统计

// 19-3投票统计.c
//

#include <stdio.h>

main()
{
    int xjl = 0, zzy = 0, nn = 0;
    int symbol = 0, input; 

    do
    {
        printf("请输入喜欢的明星:1、徐静蕾  2、周子怡  3、妮妮:");
        scanf_s("%d", &input);
        switch (input)
        {
        case 1:xjl++; break;
        case 2:zzy++; break;
        case 3:nn++; break;
        default:symbol = 1;
            break;
        }
        if (symbol == 1)break;
    } while (1);

    printf("投票结果
徐静蕾:%d
周子怡:%d
妮妮:%d
", xjl, zzy, nn);

}
原文地址:https://www.cnblogs.com/httpcc/p/15459025.html