新手在线求大佬指导,太难了
某汽车运输公司根据距离来算运费,距离越远一公里的运费越低距离0<=s<500,一公里运费0.5
距离500<=s<1000,一公里运费0.4
距离1000<=s<2000,一公里运费0.3
距离2000<=s<4000,一公里运费0.2
距离s>=4000,一公里运费0.1
请编写程序,输入距离,输出该距离对应的运费。(用switch解决)
程序代码:#include <stdio.h>
int main( void )
{
unsigned long s;
printf( "输入距离(非负整数,单位:公里): " );
if( scanf("%lu",&s) != 1 )
{
puts( "输入格式错误." );
return 1;
}
double f;
switch( s/500 )
{
case 0:
f = 0.5;
break;
case 1:
f = 0.4;
break;
case 2: case 3:
f = 0.3;
break;
case 4: case 5: case 6: case 7:
f = 0.2;
break;
default:
f = 0.1;
break;
}
printf( "总运费是 %.2f 元\n", s*f );
}