怎么把两个升序排列的整型数组合并为一个升序数组?
哪位高手帮帮忙啊,小弟我才刚刚学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]<<" ";
}
谢谢! 展开
我是这么写的,但是错了,搞不懂错哪里啊!
如下:
#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]<<" ";
}
谢谢! 展开
推荐于2017-10-09 · 知道合伙人互联网行家
关注
展开全部
使用下面的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;
}
}
展开全部
j;<<!;
"!
完毕,10:for(j=t!;i++)
cout<第11行,所以本来就不是升序
除非你故意按升序输入;23;",
for(i=0,数组a,运行得是对的;c[i]<
应该是
22;i<,
b
在输入后都没有排过序;j++)
那个逗号是笔误;!
最后
"!
完毕,10:for(j=t!;i++)
cout<第11行,所以本来就不是升序
除非你故意按升序输入;23;",
for(i=0,数组a,运行得是对的;c[i]<
应该是
22;i<,
b
在输入后都没有排过序;j++)
那个逗号是笔误;!
最后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把一个数组的每个数据依次插入到另一个数组,每次插入都排序。或者先合并数组,再整个排序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第11行:for(j=t;j,10;j++)
那个逗号是笔误,
for(i=0;i<23;i++)
cout<<c[i]<<" ";
应该是 22!!!
最后,数组a, b 在输入后都没有排过序,所以本来就不是升序
除非你故意按升序输入!
完毕,运行得是对的!
那个逗号是笔误,
for(i=0;i<23;i++)
cout<<c[i]<<" ";
应该是 22!!!
最后,数组a, b 在输入后都没有排过序,所以本来就不是升序
除非你故意按升序输入!
完毕,运行得是对的!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询