关于线性表合并的问题,【求助】
描述:老师想知道考勤情况,让三个班的学生依次到讲台上录入自己的学号,再对三个班学生登录的学号进行整合排序,以便登记;要求:全部使用顺序表操作;每個班人數不多於30人;
输入:若干学号,三个班之间的数据用0隔开;
输出:各个班学生录入的学号,整合排序好的列表,以及人数;
#include<stdio.h>
#define maxsize 1024
typedef struct
{
int data[maxsize];
int last;
}sqe;
sqe mixure(sqe ba,sqe da)
{
sqe *pp,*pq,*pw,anc;
int a=0,b=0,c=0,d=0,e=0,f=0;
pp=&ba;
pq=&da;
pw=&anc;
while(a<(pp->last)&&b<(pq->last))
{
if((pp->data[a])<(pq->data[b]))
{
pw->data[d]=pp->data[a];
a++;
d++;
}
else
{
pw->data[d]=pq->data[b];
b++;
d++;
}
}
if(pp->last>pq->last)
{
while(a<pp->last)
{
pw->data[d]=pp->data[a];
a++;
d++;
}
d--;
}
else
{
while(b<pq->data[b])
{
pw->data[d]=pq->data[b];
b++;
d++;
}
d--;
}
return anc;
}
int main()
{
sqe *pn,*bn,ban[3],wo,ni;
pn=&ban[0];
int a,b,c,d,e[3]={0,0,0};
for(a=0;a<3;a++)
{
for(b=0;;b++)
{
scanf("%d",&pn->data[b]);//->这个符号只用在指针!!!切记
if (pn->data[b]==0)
break;
else
{e[a]++;pn->last=e[a];}
}
pn++;
}
wo=mixure(ban[0],ban[1]);//如果定义到数组的具体一个就可以不当成数组而是具体的元素
ni=mixure(wo,ban[3]);
bn=∋
printf("%d\n",bn->data[0]);
return 0;
}