合并数组问题,大家帮忙!
将两个升序数组合并为一个新的升序数组如下:
为什么我的合并之后最后一位输出是个-1234234之类的数?
我实在找不出错误,大家帮忙啊!!
谢谢!
#include <iostream.h>
#include <string.h>
void main()
{
int a[3]={1,4,5};
int b[3]={0,2,3};
int c[6];
int i,j,k,size;
i=j=k=0;
size=6;
while(i <3 && j <3)
{
if(a[i] <b[j])
{
c[k++]=a[i++];
}
if(a[i]> b[j])
{
c[k++]=b[j++];
}
if(a[i]==b[j])
{
c[k++]=b[j++];
i++;
size--;
}
}
if(i==3)
{
for(;j <3;j++)
c[k++]=b[j++];
}
else if(j==3)
{
for(;i <3;i++)
c[k++]=a[i++];
}
for(k=0 ;k <size; k++)
cout < <c[k] < < " ";
cout < <endl;
}
[解决办法]
if(i==3)
{
while(j <3)
c[k++]=b[j++];
}
else if(j==3)
{
while(i <3)
c[k++]=a[i++];
}
这个地方你加了两次, for 中加了一次,赋值的时候又加了一次