# include & ltstring.h & gt
typedef結構{ long id字符名稱【10】;char sex【2】;} PS
int del(PS * p 1,int m,PS *p2,int n)
{
int i,k,j;
for(I = 0;我& ltm;i++)
{
for(k = 0;k & ltn;k++)
if(p 1【I】。id = = p2【k】。id)
{
for(j = I;j & ltm;j++)
{
p 1【j】= p 1【j+1】;
I-;
}
m-;
打破;
}
}
返回m;
}
int merge(PS * p 1,int m,PS *p2,int n)
{
int i,j,k,q;
PS溫度;
for(I = n,j = 0;我& ltm+n;i++、j++)
p2【I】= p 1【j】;
for(k = 0;k & ltm+n;k++)
{
for(q = 0;q & ltm+n-k-1;q++)
if(p2【q】。id & gtp2【q+1】。id)
{
temp = p2【q+1】;
p2【q+1】= p2【q】;
p2【q】= temp;
}
}
返回m+n;
}
void排序(PS *p,int n)
{
PS溫度;
int i,j=0,k;
for(I = 0;我& ltn;i++)
if(p【I】。sex【0】= =‘f‘。
{
temp = p【I】;
p【I】= p【j】;
p【j】= temp;
j++;
}
for(I = 0;我& ltj;i++)
{
for(k = I+1;k & ltj;k++)
{
if(strcmp(p【I】。姓名,p【k】。名稱)& gt0)
{
temp = p【I】;
p【I】= p【k】;
p【k】= temp;
}
}
}
for(I = j;我& ltn;i++)
{
for(k = I;k & ltn;k++)
{
if(strcmp(p【I】。姓名,p【k】。姓名))
{
temp = p【I】;
p【I】= p【k】;
p【k】= temp;
}
}
}
}
空顯示(PS *p,int n)
{
int I;
printf(“ID NAME SEX \ n“);
for(I = 0;我& ltn;i++)
printf(“% d % s % s \ n“,p【I】。id & amp;p【I】。姓名& ampp【I】。性);
}
int main()
{
PS a【10】= { {101,“tom“,“m“},{103,“mary“,“f“},{104,“mark“,“m“},{105,“julia“,“f“},{ 106,“sara“,“f“} };
PS b【10】= { { 102,“mark“,“m“},{104,“mark“,“m“} };
printf(“a:\ n“);
display(a,5);
printf(“b:\ n“);
顯示(b,2);
int m = del(a,5,b,2);
printf(“a:\ n“);
顯示(a,m);
int n = merge(a,m,b,2);
printf(“b:\ n“);
顯示(b,n);
sort(a,m);
printf(“a:\ n“);
顯示(a,m);
}