| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 424 人关注过本帖
标题:合并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
快速回复:合并2个数组为什么答案错误?
数据加载中...
 
   



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

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