【问题描述】
一个公司有m名推销员,他们都推销n种不同的产品。其中m>=l;m<=100,n>=l,n<=10。每天,每个推销员都要为售出的每一种产品交上来一个卡片,卡片包含:推销员编号(1到m),产品编号(1到n),当天销售额。这样每个推销员每天可能上交0到n张卡片。
请编写个程序,统计某个时间段该公司的销售情况。
【输入形式】
第一行输入两个数m和n,表示该公司有m个推销员,销售n种产品。
后面有若干行数据,每行3个数据i、j、t,表示编号为i的推销员销售j种商品的销售额为t,最后一行-1表示输入结束。
【输出形式】
将销售总额按列表形式打印出来。一个推销员占一行,一个产品占一列。每一行末尾为该推销员的销售总额,每一列的下方为该产品的销售总额。每个输出数据占8位,保留两位小数。
【输入样例】
2 2
1 1 23.00
1 1 48.00
1 2 85.00
1 2 62.00
2 1 58.00
2 2 42.00
2 2 26.00
-1
【输出样例】
Sales Statistics:
71.00 147.00 218.00
58.00 68.00 126.00
129.00 215.00
#include<stdio.h>
//先定义一个关于产品的结构体
struct table{
double money[11];
};
int main(){
int m,n;
int i,j;
double t;
scanf("%d%d",&m,&n);
struct table person[101];//把员工定义出来
double r[11];//用于把单个产品销售额累加
while(1){
scanf("%d",&i);
if(i==-1){
break;
}
scanf("%d%lf",&j,&t);
person[i].money[j]+=t;
r[j]+=t;
}
printf("Sales Statistics:\n");
int a,b;
double r1;//用于把单个员工的总销售额求出
for(a=1;a<=m;a++){
r1=0;
for(b=1;b<=n;b++){
printf("%8.2lf",person[a].money[b]);
r1+=person[a].money[b];
}
printf("%8.2lf",r1);
printf("\n");
}
int e;
for(e=1;e<=n;e++){
printf("%8.2lf",r[e]);
}
return 0;
}
代码已经过测试,有问题可提出讨论,代码仅供参考。