69,371
社区成员
发帖
与我相关
我的任务
分享
《全国计算机等级考试二级教程—— 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
的值小于 100
,switch
后一对括号内的表达式可写成: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;
}
应该对了,不过题目也没明确变量 a
的类型,就默认它是正整数吧😴