我终于把老师布置的三个程序给打出来了,谢谢你们的帮忙
1:这800公里中,每一公里的运费是0.4元,那么800公里的运费共计就是800*0.4=320元。
2:800公里=500公里+300公里,其中前500公里的运费是500*0.5=250元。后300公里的运费是300*0.4=120元,所以这800元的共计运费就是:500*0.5+300*0.4=370元。因为原题里面说的是:距离500<=s<1000,一公里运费0.4。
如果是第一种情况,那么6楼的编程不错,如果是第二种情况呢?
如果是第二种情况呢,编程如下:
程序代码:
#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; printf( "总运费是 %.2f 元\n", s*f ); break; case 1: f = 0.4; printf( "总运费是 %.2f 元\n", 500*0.5+(s-500)*f ); break; case 2: case 3: f = 0.3; printf( "总运费是 %.2f 元\n", 500*0.5+500*0.4+(s-1000)*f ); break; case 4: case 5: case 6: case 7: f = 0.2; printf( "总运费是 %.2f 元\n", 500*0.5+500*0.4+1000*0.3+(s-2000)*f ); break; default: f = 0.1;printf( "总运费是 %.2f 元\n", 500*0.5+500*0.4+1000*0.3+2000*0.2+(s-4000)*f ); break; } }