读书人

合并数组有关问题,大家帮忙

发布时间: 2012-03-11 18:15:38 作者: rapoo

合并数组问题,大家帮忙!
将两个升序数组合并为一个新的升序数组如下:
为什么我的合并之后最后一位输出是个-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 中加了一次,赋值的时候又加了一次

读书人网 >C++

热点推荐