请教关于归并排序问题
这个程序我想半天,认为没错,可就是在vc中运行不了啊,不通过,好闷。。。
#include <iostream.h>
//归并
void merge(int r[],int r1[],int s,int m,int t) {int i,j,k;
i=s;j=m+1;k=s;
while((i<=m)&&(j<=t))
{
if(r[i]<=r[j])
r1[k++]=r[i++];
else
r1[k++]=r[j++];}
if(i<=m){while(i<=m)r1[k++]=r[i++];}
else {while(j<=t)r1[k++]=r[j++];}
}
//划分序列
void mergesort(int r[],int r1[],int s,int t)
{
if(s==t)
{r1[s]=r[s];}
else
{
mergesort(r,r1,s,(s+t)/2);
mergesort(r,r1,(s+t)/2+1,t);
merge(r1,r,s,(s+t)/2,t);
}
}
//主函数
void main()
{
const size=10;
int *p=new int[size];
int yuan[10]={0,17,16,59,123,25,269,54,65,27};
mergesort(yuan,p,1,9);
for (int i=1;i<=9;i++)
{cout<<yuan[i]<<" ";
cout<<*++p<<endl;}