64,636
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAXSIZE 4
typedef struct
{
int data[MAXSIZE];
// int len;
}SqList;
void merge(SqList&a,SqList&b,SqList &c)
{
int i=0;
while(i <MAXSIZE)
{
if(a.data[i]<b.data[i])
{c.data[i]=a.data[i];}
else
{c.data[i]=b.data[i];}
++i;
}
}
void displist(SqList&c)
{
int k;
for(k=0;k <MAXSIZE;k++)
cout <<c.data[k] <<" ";
cout <<endl;
}
int main()
{
SqList a,b,c;
int i,j;
cout <<"输入数组a的值:" <<" ";
for(i=0;i <MAXSIZE;i++)
{
cin>>a.data[i];
}
cout <<"输入数组b的值:" <<" ";
for(j=0;j <MAXSIZE;j++)
{
cin>>b.data[j];
}
merge(a,b,c);
displist(c);
system("pause");
return 0;
}
#include <iostream.h>
#define MAXSIZE 4
typedef struct
{
int data[MAXSIZE];
int len;
}SqList;
int merge(SqList a,SqList b,SqList &c,int len1,int len2)
{
int i=0,j=0,k=0;
while(i <len1 && j <len2)
{
if(a.data[i] <b.data[j])
{
c.data[k]=a.data[i];
i++;k++;
}
else if(a.data[i]>b.data[j])
{
c.data[k]=b.data[j];
j++;k++;
}
else
{
c.data[k]=a.data[i];
i++;k++;
c.data[k]=b.data[j];
j++;k++;
}
}
while(i <len1)
{
c.data[k]=a.data[i];
i++;k++;
}
while(j <len2)
{
c.data[k]=b.data[j];
j++;k++;
}
return k;
}
void displist(SqList c,int len3)
{
int k;
for(k=0;k <len3;k++)
cout <<c.data[k] <<" ";
cout <<endl;
}
void main()
{
SqList a,b,c;
int i,j;
cout <<"输入数组a的值:" <<" ";
for(i=0;i <MAXSIZE;i++)
{
cin>>a.data[i];
}
cout <<"输入数组b的值:" <<" ";
for(j=0;j <MAXSIZE;j++)
{
cin>>b.data[j];
}
int len3;
len3=merge(a,b,c,4,4);
cout<<len3<<endl;
displist(c,len3);
}