33,311
社区成员
发帖
与我相关
我的任务
分享
void merge(int *a, int *b, int *c, int M, int N, int &K)//引用
{
int i = 0, j = 0, k = 0;
while (i<M&&j<N){
if (a[i]<b[j])
c[k++] = a[i++];
else{
if (a[i]>b[j])
c[k++] = b[j++];
else
{
c[k++] = a[i++];
c[k++]=a[j++]; //再加一行
}
}
}
if (i == M)
while (j<N)
c[k++] = b[j++];
else
while (i<M)
c[k++] = a[i++];
K = k;
}
#define M 3
#define N 4
int main()
{
int a[M] = { 1, 3, 5 }, b[N] = { 2, 3, 5, 7 }, c[M + N];
int i, j, k=0;
merge(a, b, c, M, N, k);
printf("合并后数组为:");
for (i = 0; i<k; i++)
printf("%d ", c[i]);
printf("\n");
[code=c]void merge(int *a, int *b, int *c, int M, int N, int &K)//c为合并后数组
{ //引用
int i = 0, j = 0, k = 0;
while (i<M&&j<N){//两数组比较插入c,遍历到数组尾
if (a[i]<b[j])
c[k++] = a[i++];
else{
if (a[i]>b[j])
c[k++] = b[j++];
else
{
c[k++] = a[i++];
c[k++]=a[j++]; //再加一行
}
}
}
if (i == M)//数组a先遍历完毕,将b中元素复制到c中
while (j<N)
c[k++] = b[j++];
else//数组b先遍历完毕,将a中元素复制到c中
while (i<M)
c[k++] = a[i++];
K = k;//c中元素个数
}
#define M 3
#define N 4
int main()
{
int a[M] = { 1, 3, 5 }, b[N] = { 2, 3, 5, 7 }, c[M + N];
int i, j, k=0;
merge(a, b, c, M, N, k);
printf("合并后数组为:");
for (i = 0; i<k; i++)
printf("%d ", c[i]);
printf("\n");
[/code]#include <stdio.h>
#define M 3
#define N 4
void merge(int*a,int*b,int*c,int m,int n,int* qwe)
{
int i=0,j=0,k=0 ;
while(i<m&&j<n)
{
//两数组比较插入c,遍历到数组尾
if(a[i]<b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
}
if(i==m)
{
while(j<n)
c[k++]=b[j++];
}
else
{
while(i<m)
c[k++]=a[i++];
}
*qwe=k ;
}
int main()
{
int a[M]=
{
1,3,5
}
,b[N]=
{
2,3,5,7
}
,c[M+N];
int i,j,k ;
merge(a,b,c,M,N,&k);
printf("合并后数组为:");
for(i=0;i<k;i++)
printf("%d ",c[i]);
printf("\n");
return 0 ;
}
居然用K 和k来区分变量