作者: 朱星垠 时间限制: 1S章节: 循环
问题描述 :
一家水果店出售四种水果,每公斤价格的苹果(代码为a)1.5元,橘子(代码为o)1.4元,香蕉(代码为b)1.48元,菠萝(代码为p)1.08元。编一个程序,使售货员只要在键盘上打入货品的代码及重量,计算机将显示货品名、单价、重量及总价。
输入说明 :
你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。
每组测试数据的第一行为一个整数m,表示有m件货品要被购买。在接下来的m行中,每行输入两个值d,g。d表示货品的代码,g表示重量。两组数据之间没有多余的空行。
输出说明 :
对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一组对应的答案。对应每组输入,输出货品名、单个总价及全部总价。具体格式参照样例输出:第一行apple前为7个空格,之后为2个空格,其他水果名后都是1个空格,sum后没有空格;第二行price后有2个空格,其后关于价格的表示多为占7格2位小数且左对齐,但其中pineapple为占10格2位小数且左对齐,注意sum的价格仍然占7格,如第一组样例中的54.60后还有2个空格;第三行weight后有1个空格,其后的数据与第二行一致。每两组数据之间有一个空行,最后一组测试数据之后没有空行。
输入范例 :
4
a 10
o 10
b 10
p 10
2
a 5.7
a 3.8
输出:
apple orange banana pineapple sum
price 15.00 14.00 14.80 10.80 54.60
weight 10.00 10.00 10.00 10.00 40.00
apple orange banana pineapple sum
price 14.25 0.00 0.00 0.00 14.25
weight 9.50 0.00 0.00 0.00 9.50
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int f=0;
while(cin>>n){
if(f==0)f=1;
else cout<<endl;
double b;
char a;
double w[300]={0};
for(int i=0;i<n;i++){
cin>>a>>b;
w[a]+=b;
}
cout<<" "<<"apple"<<" "<<"orange"<<" "
<<"banana"<<" "<<"pineapple"<<" "<<"sum"<<endl;
printf("price %-7.2f%-7.2f%-7.2f%-10.2f%-7.2f\n",w['a']*1.5,w['o']*1.4,w['b']*1.48,w['p']*1.08,w['a']*1.5+w['o']*1.4+w['b']*1.48+w['p']*1.08);
printf("weight %-7.2f%-7.2f%-7.2f%-10.2f%-7.2f\n",w['a'],w['o'],w['b'],w['p'],w['a']+w['o']+w['b']+w['p']);
}
return 0;
}