C语言:Switch语句解决实际问题

来源:互联网 发布:历年总决赛mvp平均数据 编辑:程序博客网 时间:2024/05/18 21:11

任务代码:

#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.用布尔判断来设立一个指标,这种方法主要是和于不仅仅是边缘值是某一特定值的倍数,不是特定值的倍数也可以实现。例如第二个例子!

原创粉丝点击