视频中的路费的代码,还未参考分析解答自己写的
代码:
/*switch解决问题
课堂分析*/
#include <stdio.h>
int main()
{
float p,w,s,d,f;
printf("请输入基本运费,货物重量,距离");
scanf("%f %f %f",&p,&w,&s);
switch(s<250&&s>0)
{
case 1:
d=1;break;
case 0:
switch(s>=250&&s<500)
{
case 1:
d=1-0.02;break;
case 0:
switch(s>=500&&s<1000)
{
case 1:
d=1-0.05;break;
case 0:
switch(s>=1000&&s<2000)
{
case 1:
d=1-0.08;break;
case 0:
switch(s>=2000&&s<3000)
{
case 1:
d=1-0.1;break;
default:
d=1-0.15;break;
}
}
}
}
}
if (s<=0||p<=0||w<=0)
printf("输入错误");
else
{
f=p*w*s*d;
printf("总运费为%f",f);
}
return 0;
}
其实这道题上一节课的课后观察已经给出了解题提示,利用switch后面的解答式判断真假值来解题
也可以用if分支解决这个问题代码
/*switch实现多分支结构
课后观察*/
#include <stdio.h>
int main()
{
float p,w,s,d,f;
printf("请输入基本运费,货物重量,距离");
scanf("%f %f %f",&p,&w,&s);
if(s<250&&s>0)
d=1;
else if(s>=250&&s<500)
d=1-0.02;
else if(s>=500&&s<1000)
d=1-0.05;
else if(s>=1000&&s<2000)
d=1-0.08;
else if(s>=2000&&s<3000)
d=1-0.1;
else
d=1-0.15;
if (s<=0||p<=0||w<=0)
printf("输入错误");
else
{
f=p*w*s*d;
printf("总运费为%f",f);
}
return 0;
}