POJ C程序设计进阶 编程题#3: 发票统计

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

有一个小型的报账系统,它有如下功能:

(1)统计每个人所报发票的总钱数

(2)统计每类发票的总钱数

将此系统简化为如下:假设发票类别共有A、B、C三种;一共有三个人,ID分别为1、2、3。 

输入

系统输入包含三行,每行第一个数为人员ID(整型,1或2或3),第二个数为发票总张数(张数不超过100),之后是多个发票类别(字符型,A或B或C)和相应发票金额(单进度浮点型,不超过1000.0)。

输出

输出包含六行,前三行为每人(按ID由小到大输出)所报发票总钱数(保留两位小数),后三行为每类发票的总钱数(保留两位小数)。 

样例输入

1 5 A 1.0 A 2.0 C 1.0 B 1.0 C 1
3 3 B 1 C 2 C 1
2 4 B 1 A 1 C 1 A 1

样例输出

1 6.00
2 4.00
3 4.00
A 5.00
B 3.00
C 6.00


 1 #include<iostream>
 2 #include <stdio.h> 
 3 using namespace std;
 4 
 5 int main() 
 6 {
 7     float sum[6];
 8     
 9     for (int i = 0; i < 3; i++){
10         int a;
11         cin >> a;
12         int n;
13         cin >> n;
14         for (int j = 0; j < n;j++){
15             char b;
16             cin >> b;
17             float c;
18             cin >> c;
19             if (b == 'A') {
20                 sum[a- 1] += c;
21                 sum[3] += c;
22             }
23             else if (b == 'B') {
24                 sum[a - 1] += c;
25                 sum[4] += c;
26             } 
27             else if (b == 'C') {
28                 sum[a - 1] += c;
29                 sum[5] += c;
30             }    
31         }
32     }
33     printf("1 %.2f\n", sum[0]);
34     printf("2 %.2f\n", sum[1]);
35     printf("3 %.2f\n", sum[2]);
36     printf("A %.2f\n", sum[3]);
37     printf("B %.2f\n", sum[4]);
38     printf("C %.2f\n", sum[5]);
39     return 0;
40 }

 

 
posted @ 2015-08-05 22:53  dagon  阅读(1622)  评论(0编辑  收藏  举报