7-3 加油 (10 分)
小明经常去两个加油站加油,其中一个加油站A是人工服务,另外一个加油站B是自助服务。最近油价上涨,A站的油价为6.8元/升,B站的油价为6.2元/升。小明想去最省钱的加油站将车加满油。已知车的油耗为8升/百公里,容量为55升,请你帮助小明计算一下他应该去A站还是B站,以及节省的钱数。
输入格式:
输入在一行中给出3个正实数n,d1,d2,n为当前油箱剩余的油量,单位为升,d1为当前离A站的的距离,单位为公里,d2为当前离B站的的距离,单位为公里。
输出格式:
省的钱数大于等于10元时,则在一行输出小明应该去的加油站名以及省的钱数,中间用空格分割,钱数保留到小数点后一位。 否则,则去距离最近的加油站,只需输出加油站名。题目保证距离不相同。
输入样例1:
10 3.6 3.8
输出样例1:
B 27.1
输入样例2:
20 30.3 60.6
输出样例2:
A
源代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
double n;
double d1,d2;
scanf("%lf %lf %lf",&n,&d1,&d2);
double yu1,yu2;
yu1=n-0.08*d1;
yu2=n-0.08*d2;
double save1,save2;
save1=(55-yu1)*6.8;
save2=(55-yu2)*6.2;
if(save1-save2>=10)
printf("B %.1f\n",save1-save2);
else if(save2-save1>=10)
printf("A %.1f\n",save2-save1);
else if(save1-save2<10){
if(d1<d2)
printf("A\n");
else
printf("B\n");
}
else if(save2-save1<10){
if(d1<d2)
printf("A\n");
else
printf("B\n");
}
return 0;
}
简析:这道题最重要的地方在于思路要清晰。