销售排行榜

来源:互联网 发布:mac彻底卸载软件 编辑:程序博客网 时间:2024/04/27 16:33
题目描述

你的任务是帮助淘宝网店店长整理销售数据,根据累计的销售记录,将所有商品按销售数量降序排列。

输入
输入包括多行数据(行数小于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 <stdio.h>#include<string.h>typedef struct{    char name[100];    long num;    long price;    int visit;}sell;sell m[100000];int length;void input(){    int i=0;    char time[15];    //m[0]=(struct *m)malloc(sizeof(m));    while(scanf("%s %ld %ld %s",&m[i].name,&m[i].num,&m[i].price,time)!=EOF){        m[i].visit==0;        i++;    }   length=i;  /* int l=0;   while(l<length){    printf("%s\n",m[l].name);    l++;   }*/}void chuli(){    int n=0;     //    while(n<length-1){        int k=n+1;        m[n].price=m[n].price*m[n].num;        while(k<length && m[n].visit==0){                int compare=strcmp(m[n].name,m[k].name);            if(compare==0){                m[n].num+=m[k].num;                m[n].price+=m[k].price*m[k].num;                m[k].visit=1;            }/*            if(compare>0 && m[n].visit==0){                char name1[15];                strcpy(name1,m[n].name);                int num1=m[n].num;                int price1=m[n].price;                strcpy(m[n].name,m[k].name);                //*m[n].name=*m[k].name;                m[n].num=m[k].num;                m[n].price=m[k].price;                strcpy  (m[k].name,name1);               // m[k].name=name1;                m[k].num=num1;                m[k].price=price1;            }*/            k++;        }        n++;    }    n=0;    while(n<length-1){       int k=n+1;        while(k<length && m[n].visit==0){            if(m[k].visit==1){k++; continue;}            if(m[n].num<m[k].num){                char name1[15];                strcpy(name1,m[n].name);                long num1=m[n].num;                long price1=m[n].price;                strcpy(m[n].name,m[k].name);                //*m[n].name=*m[k].name;                m[n].num=m[k].num;                m[n].price=m[k].price;                strcpy  (m[k].name,name1);               // m[k].name=name1;                m[k].num=num1;                m[k].price=price1;            }                if(m[n].num==m[k].num){                int compare=strcmp(m[n].name,m[k].name);            if(compare>0){                char name1[15];                strcpy(name1,m[n].name);                long num1=m[n].num;                long price1=m[n].price;                strcpy(m[n].name,m[k].name);                //*m[n].name=*m[k].name;                m[n].num=m[k].num;                m[n].price=m[k].price;                strcpy  (m[k].name,name1);               // m[k].name=name1;                m[k].num=num1;                m[k].price=price1;            }                 }                k++;        }        n++;    }} void output(){    int n=0;    while(n<length){        if(m[n].visit==0){            printf("%s %ld %ld\n",m[n].name,m[n].num,m[n].price);        }        n++;    }}int main(){    //输入售卖信息    //int length=0;    input();    //对售卖信息进行处理 求出售卖量    chuli();    //处理过的进行排序   // paixu();    //输出    output();    return 0;}


0 0
原创粉丝点击