# 一个acm题目问下，应该不会很难，但是么做出来

（1）统计每个人所报发票的总钱数
（2）统计每类发票的总钱数

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
————————————————————

————————————————

————————————————
#include“stdio.h”
typedef struct {
char ch[100];
float a[100];
}node[1000];
int main()
{
node p1;
int n, m;
char ch;
float d, sum = 0, s[3] = { 0.0 };
int i, j, k[3] = { 0 }, t, q;
for (i = 0; i < 3; i++)
{
p1[i].ch[100] = NULL;
p1[i].a[100] = { 0.0 };
}
for (t = 0; t<3; t++)
{
scanf_s("%d%d", &n, &m);
for (j= 0; j<m; j++)
{
getchar();
ch = getchar();
scanf_s("%f",&d);
p1[n-1].ch[k[n-1]] = ch;
p1[n-1].a[k[n-1]] = d;
k[n-1]++;
}
printf("%d\n", k[n - 1]);
}
for (i = 0; i<3; i++)
{
printf("%d ", i + 1);
for (t = 0; t<k[i]; t++)
sum += p1[i].a[t];
printf("%0.2f\n", sum);
sum = 0;
}
for (i = 0; i<3; i++)
{
for (t = 0; t < k[i]; t++)
{
if (p1[i].ch[t] == 'A')
s[0] += p1[i].a[t];
else if (p1[i].ch[t] == 'B')
s[1] += p1[i].a[t];
else if (p1[i].ch[t] == 'C')
s[2] += p1[i].a[t];
}
}
printf("%c %0.2f\n", 'A', s[0]);
printf("%c %0.2f\n", 'B', s[1]);
printf("%c %0.2f\n", 'C', s[2]);
return 0;
}

2015/07/30 13:22
• acm
• acm icpc
• 点赞
• 收藏
• 回答
私信