//合并两个已排序的数组,该如何处理
//合并两个已排序的数组
//合并两个已排序的数组
#include <iostream>
using namespace std;
int* mercy(int a[],int sizea,int b[],int sizeb){
int c[1000];
int s=0,t=0,k=0;
while(s <sizea&&t <sizeb){
if(a[s] <b[t]){
c[k]=a[s];
s++;
}
else {
c[k]=b[t];
t++;
}
k++;
}
if(s==sizea){
for(;t <sizeb;t++){
c[k]=b[t];
}
}
if(t==sizeb){
for(;s <sizea;s++){
c[k]=a[s];
}
}
return &c[0];
}
void mian(){
int* c;
int a[]={1,3,5,7,9},b[]={2,4,6,8,10};
c=mercy(a,5,b,5);
for(int i=0;i <10;i++){
cout < <c[i];
}
cout < <endl;
}
哪有问题?
运行报错
--------------------Configuration: mercy - Win32 Debug--------------------
Compiling...
mercy.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/mercy.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
------解决方案--------------------
void mian()
改成
void main()
------解决方案--------------------
c在函数里定义?是局部变量,退出函数c的空间已经被释放了。
//合并两个已排序的数组
#include <iostream>
using namespace std;
int* mercy(int a[],int sizea,int b[],int sizeb){
int c[1000];
int s=0,t=0,k=0;
while(s <sizea&&t <sizeb){
if(a[s] <b[t]){
c[k]=a[s];
s++;
}
else {
c[k]=b[t];
t++;
}
k++;
}
if(s==sizea){
for(;t <sizeb;t++){
c[k]=b[t];
}
}
if(t==sizeb){
for(;s <sizea;s++){
c[k]=a[s];
}
}
return &c[0];
}
void mian(){
int* c;
int a[]={1,3,5,7,9},b[]={2,4,6,8,10};
c=mercy(a,5,b,5);
for(int i=0;i <10;i++){
cout < <c[i];
}
cout < <endl;
}
哪有问题?
运行报错
--------------------Configuration: mercy - Win32 Debug--------------------
Compiling...
mercy.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/mercy.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
------解决方案--------------------
void mian()
改成
void main()
------解决方案--------------------
c在函数里定义?是局部变量,退出函数c的空间已经被释放了。