當前位置:成語大全網 - 書法字典 - c語言難題高手解答2

c語言難題高手解答2

# include & ltstdio.h & gt

# 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);

}