这个为什么没有实现排序转换啊、、、、
  • 板块P1104 生日
  • 楼主Beria
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/5/29 18:08
  • 上次更新2023/11/4 22:33:18
查看原帖
这个为什么没有实现排序转换啊、、、、
509669
Beria楼主2021/5/29 18:08
#include<iostream>
#include<string.h>
using namespace std;
void birthday(struct individual *pointer,int n);
struct individual{
	char name[20];
	int year;
	int month;
	int day;
};
individual e[100];
int main()
{
	int n,i;
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>e[i].name>>e[i].year>>e[i].month>>e[i].day;
	}
	birthday(e,n);
}
void birthday(struct individual *pointer,int n)
{
	int j,k,l;
	char tn[20];
	for(j=0;j<n-1;j++)
	{
		for(k=0;k<n-1;k++)
		{
			if((*(pointer+k)).year==(*(pointer+k+1)).year)
			{
				if((*(pointer+k)).month==(*(pointer+k+1)).month)
				{
					if((*(pointer+k)).day>(*(pointer+k+1)).day)
					{
						strcpy(tn,(*(pointer+k)).name);
						strcpy((*(pointer+k)).name,(*(pointer+k+1)).name);
						strcpy((*(pointer+k+1)).name,tn);
					}
				}
				if((*(pointer+k)).month>(*(pointer+k+1)).month)
				{
					strcpy(tn,(*(pointer+k)).name);
					strcpy((*(pointer+k)).name,(*(pointer+k+1)).name);
					strcpy((*(pointer+k+1)).name,tn);
				}
			}
			if((*(pointer+k)).year>(*(pointer+k+1)).year)
			{
				strcpy(tn,(*(pointer+k)).name);
				strcpy((*(pointer+k)).name,(*(pointer+k+1)).name);
				strcpy((*(pointer+k+1)).name,tn);
			}
		}
	}
	for(l=0;l<n;l++)
	{
		cout<<(*(pointer+l)).name<<"\n";
	}
}
2021/5/29 18:08
加载中...