计算机2级
15-1.c 编程题
#include
typedef struct s
{ long id;
char name[10];
char sex[2];
}PS;
int delete(PS *p1, int m, PS *p2,int n) ;
int merge(PS *p1,int m, PS *p2 ,int n) ;
void sort(PS *p,int n);
void display(PS *p,int n);
main()
{ FILE *fp=fopen("d:\\person.txt","w");
PS a[5]={{101, "tom","m"},{103,"mary","f"}, {104,"mark","m"}, {105,"julia","f"}, {106, "sara","f"}},b[10]={{102, "mark","m"}, {104,"mark","m"}};
int anum=5,bnum=2,i;
anum=delete(a,anum,b,bnum);
puts("\n a array:"); display(a,anum);
bnum=merge(b,bnum,a,anum);
puts("\n b array:"); display(b,bnum);
sort(b,bnum);
puts("\n b: array"); display(b,bnum);
for(i=0;i
fprintf(fp,"\n%-8ld%-10s%3s",b[i].id,b[i].name,b[i].sex);
fclose(fp);
}
int delete(PS *p1, int m, PS *p2,int n)
{ int i,j,k;
for(i=0;i
for(j=0;j
if(p1[i].id==p2[j].id)
{ for(k=i;k
p1[k]=p1[k+1];
m--;
}
return m;
}
int merge(PS *p1,int m, PS *p2 ,int n)
{ int i,j,k;
for(i=0;i
{ for(j=0;j
if(p1[j].id>p2[i].id)break;
for(k=m;k>=j;k--)p1[k]=p1[k-1];