銷售排行榜
阿新 • • 發佈:2019-02-10
題目描述
你的任務是幫助淘寶網店店長整理銷售資料,根據累計的銷售記錄,將所有商品
按銷售數量降序排列。
輸入
輸入包括多行資料(行數小於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
你的任務是幫助淘寶網店店長整理銷售資料,根據累計的銷售記錄,將所有商品
按銷售數量降序排列。
輸入
輸入包括多行資料(行數小於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
程式碼如下:
#include<iostream> #include<string> #include<algorithm> #include<stdlib.h> #define MAX 100000 using namespace std; struct good { string name; int num; int value; }; good a[100000]; int counttt=0; int CCC(good a,good b) { if(a.num!=b.num) { return a.num>b.num; } else return a.name<b.name; } int CCC2(good a,good b) { return a.name<b.name; } int main() { string name,date; int num,price; while(cin>>name>>num>>price>>date) { a[counttt].name=name; a[counttt].num=num; a[counttt].value=num*price; counttt++; } sort(a,a+counttt,CCC2); for(int i=0;i<counttt;i++) { if(a[i].name==a[i+1].name) { a[i+1].num+=a[i].num; a[i+1].value+=a[i].value; a[i].name="GSwin"; } } sort(a,a+counttt,CCC); for(int i=0;i<counttt;i++) { if(a[i].name!="GSwin") { cout<<a[i].name<<" "<<a[i].num<<" "<<a[i].value<<endl; } } return 0; }