《C语言及程序设计》实践参考——分段函数求值switch语句版
2015-02-23 21:37
295 查看
返回:贺老师课程教学链接 项目要求
【项目:分段函数求值switch语句版】
从键盘输入x的值(要求为整型),根据公式1计算并输出x和y的值。要求用switch语句完成。
[参考解答]
解法1:
各分段的标准都为2的倍数,所以,构造表达式 t= x/2,根据t的取值决定switch分支;
解法2:构造表达式 t=(x<2) + (x<6) + (x<10)。由于关系表达式(x<a)的值为0或1(真为1,假为0),所以t能表示x究竟满足了几个条件。t值为3时,相加的三个关系表达式全为真,对应x<2;而t值为0时,相加的三个关系表达式全为假,对应x≥10,其他类似。根据t的取值,可以决定switch分支。
【项目:分段函数求值switch语句版】
从键盘输入x的值(要求为整型),根据公式1计算并输出x和y的值。要求用switch语句完成。
[参考解答]
解法1:
各分段的标准都为2的倍数,所以,构造表达式 t= x/2,根据t的取值决定switch分支;
#include <stdio.h> #include <math.h> int main ( ) { int x, y, a; scanf("%d", &x); a = x/2; //注意是整数相除 if (a<0) a=0; //这样,x<0时,a值也是0 switch(a) { case 0: //即x<2时 y=x; break; case 1: case 2://a为1、2,对应x>=2 && x<6时 y=x*x+1; break; case 3: case 4://a为3、4,对应x>=6 && x<10时 y=-x; break; default://如果走到这一分支,对应的是x>=10的所有情况 y=-x*x-1; } printf("%d\n", y); return 0; }
解法2:构造表达式 t=(x<2) + (x<6) + (x<10)。由于关系表达式(x<a)的值为0或1(真为1,假为0),所以t能表示x究竟满足了几个条件。t值为3时,相加的三个关系表达式全为真,对应x<2;而t值为0时,相加的三个关系表达式全为假,对应x≥10,其他类似。根据t的取值,可以决定switch分支。
#include <stdio.h> #include <math.h> int main ( ) { int x, y, t; scanf("%d", &x); t = (x<2) + (x<6) + (x<10); //括号中的关系表达式有几个为真(1),确定了t的值,实则反映的是x的范围 switch(t) { case 3: //(x<2) 、 (x<6) 、 (x<10) 全部为真,自然x<2 y=x; break; case 2: //(x<2) 、 (x<6) 、 (x<10) 为真有2,自然x>=2,且x<6 y=x*x+1; break; case 1: //(x<2) 、 (x<6) 、 (x<10) 为真有1,自然…… y=-x; break; case 0://只有(x<2) 、 (x<6) 、 (x<10) 全0了.也可写作default: y=-x*x-1; } printf("%d\n", y); return 0; }
相关文章推荐
- 《C语言及程序设计》实践参考——个人所得税计算器switch语句版
- 《C语言及程序设计》实践参考——分段函数求值
- 《C语言及程序设计》实践参考——个人所得税计算器if语句版
- 《C语言及程序设计》实践参考——三角公式求值
- 《C语言及程序设计》实践项目——利用switch语句解决问题
- 《C语言及程序设计》实践参考——求解分段函数的值
- 第二周《C语言及程序设计》实践项目26 利用switch语句解决问题
- 第8周上机实践项目3——多分段函数求值(用switch语句构造多分支结构)
- 《C语言及程序设计》实践参考——长方形的周长和面积
- 第8周项目3-多分段函数求值(if~else~语句1种+switch语句2种)
- 编程:多分段函数求值---用switch语句构造多分支结构
- C语言及程序设计初步例程-26 利用switch语句解决问题
- 《C语言及程序设计》实践参考——圆柱体的表面积
- 《C语言及程序设计》实践参考——分离各位数
- 《C语言及程序设计》实践参考——三数最大值
- 《C语言及程序设计》实践项目——用if语句实现分支结构
- 《C语言及程序设计》实践参考——发工资
- 第8周项目3多分段函数求值(2)switch语句之t=(x<2)+(x<6)+(x<10)
- 第八周项目2.2 多分段函数求值(switch语句)
- 第八周项目 3 多分段函数求值(switch语句)