• 销售排行榜


    题目描述
    你的任务是帮助淘宝网店店长整理销售数据,根据累计的销售记录,将所有商品
    按销售数量降序排列。
    输入
    输入包括多行数据(行数小于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 }           
  • 相关阅读:
    Linux 安装中文man手册
    centos6.9使用NTFS-3G挂载ntfs文件系统
    Linux基础知识之挂载详解(mount,umount及开机自动挂载)
    技术点总结
    SQL 分组后获取其中一个字段最大值的整条记录 【转载】
    线程池之ThreadPool类与辅助线程
    Task.Run使用默认线程池
    VS生成事件
    线程池之ThreadPoolExecutor使用
    Sql笔记
  • 原文地址:https://www.cnblogs.com/baigg1995/p/4583383.html
Copyright © 2020-2023  润新知