票据统计



2013北大《计算概论A》期中试题

【描述】

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

统计每个人所报票据的总钱数 

统计每类票据的总钱数 

将此系统简化为如下:假设票据类别共有ABC三种;一共有三个人,ID分别为123

【输入】

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

【输出】

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

【输入示例】

1 5 A1.0 A 2.0 C 1.0 B 1.0 C 1

3 3 B 1C 2 C 1

2 4 B 1A 1 C 1 A 1

【输出示例】

1 6.00

2 4.00

3 4.00

A 5.00

B 3.00

C 6.00

C代码】

---------------

#include<stdio.h>

intmain(void) {

double person[3] = {};

double type[3] = {};

int i, j, id, n;

char ch;

double money;

for(i = 0; i < 3; ++i) {

scanf("%d", &id);

scanf("%d", &n);

for(j = 0; j < n; ++j) {

getchar();

scanf("%c%lf", &ch, &money);

if(id == 1)

person[0] += money;

else if(id == 2)

person[1] += money;

else if(id == 3)

person[2] += money;

if(ch == 'A')

type[0] += money;

else if(ch == 'B')

type[1] += money;

else if(ch == 'C')

type[2] += money;

}

}

for(i = 1; i <= 3; ++i)

printf("%d %.2f\n", i, person[i - 1]);

for(ch = 'A'; ch <= 'C'; ++ch)

printf("%c %.2f\n", ch, type[ch - 'A']);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值