标签:
来源: 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 }
标签:
原文地址:http://www.cnblogs.com/dagon/p/4706093.html