标题:合并2个数组为什么答案错误?
只看楼主
工藤♀新一
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-5-4
 问题点数:0 回复次数:0 
合并2个数组为什么答案错误?

程序如下:
#include<iostream>
using namespace std;
void onepaixu(int *p,int n)
{ int i,j,k,temp;
for(i=0;i<n;i++)
{ k=i;
for(j=i;j<n;j++)
if(*(p+j)<*(p+k))
k=j;
if(k!=i)
{ temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp;
}
}
}
void twopaixu(int *p1,int n1,int *q1,int n2)
{ int s=0,t=0,k=0;
int *r=new int[n1+n2];
while((*(p1+s)<=*(p1+n1-1))&&(*(q1+t)<=*(q1+n2-1)))
{ if(*(p1+s)<=*(q1+t))
{ r[k]=*(p1+s);
s++;}
else
{ r[k]=*(q1+t);
t++;}
k++;
}
if(s>=n1)
for(int i=t;i<n2;i++,k++)
r[k]=*(p1+t);
else
for(int i=s;i<n1;i++,k++)
r[k]=*(q1+s);
cout << "合并后的数组为:" <<endl;
for( k=0;k<n1+n2;k++)
cout<< r[k] <<" " ;
cout << endl;
}


int main()
{ int n[2],*p,*q,i;
cout << "请输入第一个一维数组的个数:" ;
cin >> n[0];
p=new int[n[0]];
cout << "请输入第一个一维数组:" ;
for(i=0;i<n[0];i++)
cin>> p[i];
onepaixu(p,n[0]);
cout << "第一个排序后的数组为:";
for(i=0;i<n[0];i++)
cout<< p[i] <<" " ;
cout << endl;
cout << "请输入第二个一维数组的个数:" ;
cin >> n[1];
q=new int[n[1]];
cout << "请输入第二个一维数组:" ;
for(i=0;i<n[1];i++)
cin>> q[i];
onepaixu(q,n[1]);
cout << "第二个排序后的数组为:";
for(i=0;i<n[1];i++)
cout<< q[i] <<" " ;
cout << endl;
twopaixu(p,n[0],q,n[1]);
return 0;
}

搜索更多相关主题的帖子: include 
2006-07-15 12:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-78450-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075636 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved