任务代码:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62#include <stdio.h> #define PRICE 12//此处以千千快递为例,每千克货物运费12RMB,定义常量宏 int main ( ) { float fWeight,fDistance,fDiscount,fFreight;//定义货物重量,运输距离,折扣,总运费 int iCase; //设定iCase用于指标250的倍数 printf("千千快递,1千克货物基本运费12元/公里!n"); printf("请输入货物重量(千克):"); scanf("%f",&fWeight); if(fWeight<0) { printf("错误!物品重量不能为负数!n"); return main(); } printf("请输入距离(千米:)"); scanf("%f",&fDistance); if(fDistance<0) { printf("错误!与数据里不能为负数!n"); return main(); } if(fDistance>3000) { fDiscount=0.15; } else { iCase=fDistance/250; switch (iCase) { case 0: fDiscount=0; break; case 1: fDiscount=0.02; break; case 2: case 3: fDiscount=0.05; break; case 4: case 5: case 6: case 7: fDiscount=0.08; break; case 8: case 9: case 10: case 11: case 12: fDiscount=0.1; break; } } fFreight=PRICE*fWeight*fDistance*(1-fDiscount); printf("总运费为:%5.3f 元",fFreight); return 0; }
执行情况:
知识总结:
Switch语句主要用于分段函数问题的运算使用:此类问题也经常可以使用if else多分支结构语句来实现!
问题:
关于分段函数使用if else多分支实现:
但经过观察可以发现此类分段函数有一个显著特点就是,分段函数的边缘值都是250的倍数!
因此给我们是用switch语句创造了机会:(采用整除的方式来设立指标例如:c)
另外一种使用switch语句求分段函数的技巧:(通过布尔类型判断来设立一个指标l例如 t!)
心得体会:
自己举的例子价格贵的离谱,但是只是一个范例,注意switch后面需要用大括号,并且break后面需要号!
switch语句求分段函数主要运用于指标的设立,常规方法就是1.用整除的方式来设立指标,这种方法主要适合于分段函数中的边缘值是某一个特定值的倍数;
2.用布尔判断来设立一个指标,这种方法主要是和于不仅仅是边缘值是某一特定值的倍数,不是特定值的倍数也可 以实现。例如第二个例子!
最后
以上就是寂寞鱼最近收集整理的关于C语言:Switch语句解决实际问题的全部内容,更多相关C语言内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复