|
发表于 2022-10-16 12:00:12
|
显示全部楼层
本帖最后由 jhq999 于 2022-10-16 12:09 编辑
不知道我理解的对不对?只是按样例写的
- #include<stdio.h>
- void fun(int q,int *a,int *alen,int bval,int *b,int *blen)//q是表示第几个操作,a表示队列a,b表示队列b,bval表示元素b
- {
- switch(q)
- {
- case 1:
- a[*alen]=bval;
- *alen+=1;
- break;
- case 2:
- for(int i=*alen;i>0;i-=1)
- {
- a[i]=a[i-1];
- }
- a[0]=bval;
- *alen+=1;
- break;
- case 3:
- for(int i=0;i<*blen;i+=1)
- {
- a[*alen+i]=b[i];
- }
- *alen+=*blen;
- break;
- default:
- break;
- }
- }
- /*
- 1 1 2
- 2 2 3
- 3 1 2
- */
- void print(int *a,int l)
- {
- for(int i=0;i<l;i+=1)printf("%d",a[i]);
- }
- int main(void)
- {
- int a1[256]={0},a2[256]={0},/*a3[256]={0},*/l1=1,l2=1,/*l3=1,*/max=0,*m;
- a1[0]=1,a2[0]=2/*,a3[0]=3*/;
- fun(1,a1,&l1,2,NULL,&l2);//在a后面加b
- fun(2,a2,&l2,3,NULL,&l2);//在a前面加b
- fun(3,a1,&l1,0,a2,&l2);//链接ab
- max=l1;
- m=a1;
- if(max<l2)max=l2,m=a2;
- //if(max<l3)max=l3,m=a3;
- print(m,max);//输出最大
- return 0;
- }
复制代码 |
|