大连理工大学C语言第五次上机作业,C上机作业(第15次)参考答案

计算机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];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值