HDU oj 水果 题目1263

来源:互联网 发布:常用的推荐算法 编辑:程序博客网 时间:2024/05/17 01:05


#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>using namespace std;struct app{    char name[81];//名称     char add[81];//地址     int num;//数量 }guo[100];int cmp(const void *a,const void *b){//按照要求结构体排序    struct app *c= (app *)a;      struct app *d= (app *)b;      if(strcmp(c->add,d->add)!=0)      return strcmp(c->add,d->add);      else       return strcmp(c->name,d->name);  }int main(){    int n,m;    scanf("%d",&n);    while(n--){     int j=0;        scanf("%d\n",&m);        for(int i=0;i<m;i++)            scanf("%s %s %d",guo[i].name,guo[i].add,&guo[i].num);        qsort(guo,m,sizeof(guo[0]),cmp);        //sort(guo,guo+m,cmp);        for(int i=1;i<m;i++)        {         if(strcmp(guo[i].add,guo[i-1].add)==0&&strcmp(guo[i].name,guo[i-1].name)==0)//add,name都相等相加  前边的变为0   {guo[i].num+=guo[i-1].num;    guo[i-1].num=0;      }        }        printf("%s\n",guo[j].add);        for(j=0;j<m;j++)        {         if(j!=0&&strcmp(guo[j].add,guo[j-1].add)!=0) printf("%s\n",guo[j].add);//只要地址和前边的不同就是新地址  输出         if(guo[j].num!=0) printf("   |----%s(%d)\n",guo[j].name,guo[j].num);//输出数量不为0的水果的名字        }        if(n) printf("\n"); //if(n!=0)竟然也会错    }    return 0;}


0 0
原创粉丝点击