36 水果价格

36 水果价格

作者: 朱星垠 时间限制: 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 <stdio.h>
int main()
{
	int m;
	while(scanf("%d",&m) != EOF)
	{
		char d;//货物代码,a苹果,o橘子,b香蕉,p菠萝
		                 // 1.5    1.4   1.48    1.08
		float g;//新输入重量
		float weight[4];//各 水果总重量
		double price[4];//各单种水果总金额
		double sum_price=0.0;
		float sum_weight=0.0;//总重量和总价格
		for(int j=0;j<4;j++)
		{
			weight[j]=price[j]=0.0;//初始化数组
		}
		for(int i=0;i<m;i++)
		{
			getchar();
			d=getchar();
			scanf("%f",&g);
			sum_weight+=g;//总重量
			switch(d)
			{
			case 'a':weight[0]+=g; price[0]+=1.5*g;break;
			case 'o':weight[1]+=g; price[1]+=1.4*g;break;
			case 'b':weight[2]+=g; price[2]+=1.48*g;break;
			case 'p':weight[3]+=g; price[3]+=1.08*g;break;
            default : break;
			}
		}
		for(int k=0;k<4;k++)
		{
			sum_price+=price[k];//总金额
		}
		printf("       apple  orange banana pineapple sum\n");
		printf("price  %-7.2f%-7.2f%-7.2f%-10.2f%-7.2f\n",price[0],price[1],price[2],price[3],sum_price);
		printf("weight %-7.2f%-7.2f%-7.2f%-10.2f%-7.2f\n",weight[0],weight[1],weight[2],weight[3],sum_weight);
		printf("\n");
	}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值