怎么把两个升序排列的整型数组合并为一个升序数组?

哪位高手帮帮忙啊,小弟我才刚刚学C++,我是这么写的,但是错了,搞不懂错哪里啊!如下:#include<iostream.h>voidmain(){inta[10],b[... 哪位高手帮帮忙啊,小弟我才刚刚学C++,
我是这么写的,但是错了,搞不懂错哪里啊!
如下:
#include<iostream.h>
void main()
{int a[10],b[12],c[30],i,j,k=0,t=0,s;
cout<<"please input the date"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
for(j=0;j<12;j++)
cin>>b[j];
cout<<"ok";
for(i=0;i<10;i++)
{for(j=t;j,10;j++)
{if(a[i]>=b[j])
{c[k]=b[j];k++;t=j+1;}
else
{c[k]=a[i];k++;s=i;break;}
}
}
if(s<9)
for(i=s+1;i<10;i++,k++)
c[k]=a[i];
if(t<12)
for(j=t;j<11;j++)
c[k]=b[j];
for(i=0;i<23;i++)
cout<<c[i]<<" ";
}
谢谢!
展开
 我来答
百度网友96ffcf7
推荐于2017-10-09 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部

使用下面的JAVA代码可以把两个升序排列的整型数组合并为一个升序数组

package test;    
import java.util.Arrays;    
public class LArray {  
    public static void main(String[] args){  
        int[] a={2,6,7,8}; int[] b={4,6,66,77,88,99,444,666,777,999};  
        int[] c = uninArray(a,b);  
        System.out.println(Arrays.toString(c));  
    }  
      
    public  static int[] uninArray(int[] a,int[] b){  
        int left=0,mid=0,third=0;  
        int[] tmpArr=new int[a.length+b.length];  
        while (left< a.length && mid< b.length) {  
  
            // 从两个数组中取出最小的放入中间数组  
            if (a[left] <= b[mid]) {  
                tmpArr[third++] = a[left++];  
            } else {  
                tmpArr[third++] = b[mid++];  
            }  
        }  
        // 剩余部分依次放入中间数组  
        while (mid < b.length) {  
            tmpArr[third++] = b[mid++];  
        }  
        while (left <a.length) {  
            tmpArr[third++] = a[left++];  
        }  
        return tmpArr;  
    }  
}
芮尧代夏兰
2020-04-14 · TA获得超过4023个赞
知道大有可为答主
回答量:3198
采纳率:31%
帮助的人:238万
展开全部
j;<<!;
"!
完毕,10:for(j=t!;i++)
cout<第11行,所以本来就不是升序
除非你故意按升序输入;23;",
for(i=0,数组a,运行得是对的;c[i]<
应该是
22;i<,
b
在输入后都没有排过序;j++)
那个逗号是笔误;!
最后
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金爵糜柏
2019-03-30 · TA获得超过3450个赞
知道大有可为答主
回答量:3015
采纳率:33%
帮助的人:189万
展开全部
把一个数组的每个数据依次插入到另一个数组,每次插入都排序。或者先合并数组,再整个排序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清影星河6A
推荐于2017-10-09 · TA获得超过851个赞
知道小有建树答主
回答量:753
采纳率:0%
帮助的人:896万
展开全部
第11行:for(j=t;j,10;j++)
那个逗号是笔误,

for(i=0;i<23;i++)
cout<<c[i]<<" ";
应该是 22!!!

最后,数组a, b 在输入后都没有排过序,所以本来就不是升序
除非你故意按升序输入!

完毕,运行得是对的!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式