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; }