7-6 加油折扣(修正版)
分数 20
全屏浏览
切换布局
作者 shuashuap
单位 asmn的测试单位
小杰开学了,小杰爸爸开车送他去学校。路上汽车加油时,小杰爸爸告诉他,油价原价是8.38元一升。现在有一个折扣:每升汽油可优惠3毛,星期五加油每升汽油可额外优惠1毛,现在我还有一张满200减20的优惠券,但优惠券内购买的汽油不能享受这个折扣,在星期x加油,一共加了y升汽油,订单金额,电子券减免金额,折扣金额,支付金额分别是多少元?现在请你写一个程序来帮帮小杰吧。
注意:订单金额和折扣金额结果四舍五入保留两位小数,支付金额应确保:支付金额=订单金额-电子券减免金额-折扣金额
输入格式:
每个测试包含多个测试用例。第一行包含一个整数T(1≤T≤10)——测试用例的数量。测试样例描述如下。
每个测试用例的第一行包含一个整数x(1≤x≤7),表示星期几。
每个测试用例的第二行包含一个小数y(0≤y≤50),表示升数。
输出格式:
请参考样例输出。订单金额和折扣金额四舍五入保留两位小数。
输入样例:
在这里给出一组输入。例如:
2
5
29.6
1
29.6
输出样例:
在这里给出相应的输出。例如:
Order amount: 248.05
E-coupon discount amount: 20.00
Discount amount: 2.29
Payment amount: 225.76
Order amount: 248.05
E-coupon discount amount: 20.00
Discount amount: 1.72
Payment amount: 226.33
注意: 冒号全为英文冒号,冒号后有一个空格
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
答案:
#include<stdio.h>
int main(){
int t;scanf("%i",&t);
int A[11]={1,2,3,4,5,6,7,8,9,10};
float B[11]={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
float a,b,c,d;one:
for(int i=0;i<t;i++){
scanf("%i",&A[i]);scanf("%f",&B[i]);}
for(int i=0;i<t;i++){int x=A[i];float y=B[i];
a=y*8.38;int temp1=(a+0.005)*100;a=temp1/100.0;
if(x==5){if(a>=200){b=20.00;c=(a-200.0)/8.38*0.4;}else{b=0.00;c=y*0.4;}}
if(x!=5){if(a>=200){b=20.00;c=(a-200.0)/8.38*0.3;}else{b=0.00;c=y*0.3;}}
int temp2=(c+0.005)*100;c=temp2/100.0;
d=a-b-c;
printf("Order amount: %.2f\n",a);
printf("E-coupon discount amount: %.2f\n",b);
printf("Discount amount: %.2f\n",c);
printf("Payment amount: %.2f\n",d);
}
return 0;
}