首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-11 
合并数组问题,大家帮忙!将两个升序数组合并为一个新的升序数组如下:为什么我的合并之后最后一位输出是个-1

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

热点排行