switch的用法简单练习

cedtek 2021-09-12 19:58:27

《全国计算机等级考试二级教程—— C 语言程序设计(2019年版)》第 4 章 选择结构 习题解题过程
4.21 若 a 的值小于 100,请将以下选择结构改写成由 switch 语句构成的选择结构。

if (a < 30) m = 1;
else if (a < 40) m = 2;
else if (a < 50) m = 3;
else if (a < 60) m = 4;
else m = 5;

这道题和例 4.5类似
ex4_5

#include <stdio.h>

main()
{
  int g;
  printf("Enter g: ");
  scanf("%d", &g);
  printf("g = %d: ", g);
  if (g >= 90)
    printf("A\n");
  else if (g >= 80)
    printf("B\n");
  else if (g >= 70)
    printf("C\n");
  else if (g >= 60)
    printf("D\n");
  else
    printf("E\n");
}

使用 switch 改写后就是 例 4.6
ex4_6.c

#include <stdio.h>

main()
{ 
  int g;
  printf("Enter a mark: ");
  scanf("%d", &g);      /* g 中存放学生的成绩 */
  printf("g = %d: ", g);
  switch (g / 10)
  {
  case 10:
  case 9:
    printf("A\n");
    break;
  case 8:
    printf("B\n");
    break;
  case 7:
    printf("C\n");
    break;
  case 6:
    printf("D\n");
    break;
  default:
    printf("E\n");
  }
}

同时,参考答案提示:若 a 的值小于 100switch 后一对括号内的表达式可写成:a/10
参照 例 4.6 解答看看

#include <stdio.h>

int main(void)
{
  int a = 0, m = 0;

  printf("请输入整型变量 a 的值(a < 100):");
  scanf("%d", &a);

  switch (a / 10)
  {
  case 0:
  case 1:
  case 2:
    m = 1;
    break;
  case 3:
    m = 2;
    break;
  case 4:
    m = 3;
    break;
  case 5:
    m = 4;
    break;
  default:
    m = 5;
  }

  printf("m = %d\n", m);

  return 0;
}

img

应该对了,不过题目也没明确变量 a 的类型,就默认它是正整数吧😴

...全文
174 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧