销售排行榜

题目描述
你的任务是帮助淘宝网店店长整理销售数据,根据累计的销售记录,将所有商品
按销售数量降序排列。
输入
输入包括多行数据(行数小于100000),每行数据包括4个信息,分别是商品名称、
销售数量、单价、成交日期
商品名称由小写字母组成,且不超过100个字符,销售数量和单价都是正整数,且小于10000
输出
输出包括多行数据,将所有在输入中出现的商品按销售数量降序排列,每行数据包括3
个信息,分别是商品名称、销售数量、销售额,如果两种商品销售数量一样,则按商品的
字母顺序升序排列
样例输入
apple 1 20 2014-4-2
basketball 1 20 2014-4-2
computer 1 20 2014-4-2
shoe 1 20 2014-4-2
tv 1 20 2014-4-2
apple 1 18 2014-4-3
样例输出
apple 2 38
basketball 1 20
computer 1 20
shoe 1 20
tv 1 20

代码如下:

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 #include<stdlib.h>
 5 #define MAX 100000
 6 using namespace std;
 7   
 8 struct good
 9 {
10     string name;
11     int num;
12     int value;
13 };
14   
15 good a[100000];
16 int counttt=0;
17 
18 int CCC(good a,good b)
19 {
20     if(a.num!=b.num)
21     {
22         return a.num>b.num;
23     }
24     else return a.name<b.name;
25 }
26   
27 int CCC2(good a,good b)
28 {
29     return a.name<b.name;
30 }
31    
32 int main()
33 {
34     string name,date;
35     int num,price;
36     while(cin>>name>>num>>price>>date)
37     {
38         a[counttt].name=name;
39         a[counttt].num=num;
40         a[counttt].value=num*price;
41         counttt++;
42     }
43     sort(a,a+counttt,CCC2); 
44     for(int i=0;i<counttt;i++)
45     {
46         if(a[i].name==a[i+1].name)
47         {
48             a[i+1].num+=a[i].num;
49             a[i+1].value+=a[i].value;
50             a[i].name="GSwin";
51   
52         }
53     }
54     sort(a,a+counttt,CCC);
55     for(int i=0;i<counttt;i++)
56     {
57         if(a[i].name!="GSwin")
58         {
59             cout<<a[i].name<<" "<<a[i].num<<" "<<a[i].value<<endl;
60         }   
61     }
62     return 0; 
63 }           

 

转载于:https://www.cnblogs.com/baigg1995/p/4583383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值