您的位置:首页 > 其它

hdu 1263 水果 sort对结构体中字符串二级排序

2015-04-30 10:09 405 查看
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
struct node 
{
	char name[90],place[90];
	int num;
}c[105];
bool cmp(node x,node y)
{
	if(strcmp(x.place,y.place)<0) return true;
	if(strcmp(x.place,y.place)==0&&strcmp(x.name,y.name)<0) return true;
	return false;
}
int main()
{
	int test,n;
	scanf("%d",&test);
	while(test--)
	{
		memset(&c,0,sizeof(&c));
		scanf("%d",&n);
		for(int i=0;i<n;i++)
		scanf("%s %s %d",c[i].name,c[i].place,&c[i].num);
		sort(c,c+n,cmp);
		for(int i=0;i<n;i++){
			if(strcmp(c[i].place,c[i+1].place)==0)
			{
				if(strcmp(c[i].name,c[i+1].name)==0)
				c[i+1].num+=c[i].num,c[i].num=0;
			}
			else
			{
				printf("%s\n",c[i].place);
				for(int j=0;j<n;j++)
				{
					if(strcmp(c[i].place,c[j].place)==0&&c[j].num)
					printf("   |----%s(%d)\n",c[j].name,c[j].num);
				}
			}
		
		}
		if(test!=0)
		printf("\n");
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: