济南电子地图:bang忙呀,函数调用错误,可是找不到(vc++6.0)
来源:百度文库 编辑:杭州交通信息网 时间:2024/05/25 22:22:01
#include "stdio.h"
#include "stdlib.h"
#define N 50
void quicksort(int a[],int n);
int cut(int a[],int n);
void main()
{
int a[N];
int n,k;
printf("enter the number ooooo\n");
scanf("%d",&n);
for(k=0;k<n;k++)
a[k]=rand()%200;
for(k=0;k<n;k++)
{
printf(" %d",a[k]);
if((k+1)%10==0)
printf("\n");
}
quicksort(a,n);//调用快速排序函数
for(k=0;k<n;k++)
{
printf(" %d",a[k]);
if((k+1)%10==0)
printf("\n");
}
}
void quicksort(int a[],int n)//快速排序
{
int num;
if(n<2)
return;
else
{
num=cut(a,n);//分解函数
quicksort(a,num);//继续排序
quicksort(&a[num-1],n-num);//分解的后半部分
}
}
int cut(int a[],int n)//分解函数
{
int *i=a,*j=&a[n-1];
int t=a[n/2];
int num;
num=0;
a[n/2]=*i;
for(;i==j;)
{
for(;;j--)
if(*j<t)
{
*i=*j;
i++;num++;
break;
}
for(;;i++)
{
num=num+1;
if(*i>t)
{
*j=*i;
j--;
break;
}
}
}
a[num]=t;
return num;
}
#include "stdlib.h"
#define N 50
void quicksort(int a[],int n);
int cut(int a[],int n);
void main()
{
int a[N];
int n,k;
printf("enter the number ooooo\n");
scanf("%d",&n);
for(k=0;k<n;k++)
a[k]=rand()%200;
for(k=0;k<n;k++)
{
printf(" %d",a[k]);
if((k+1)%10==0)
printf("\n");
}
quicksort(a,n);//调用快速排序函数
for(k=0;k<n;k++)
{
printf(" %d",a[k]);
if((k+1)%10==0)
printf("\n");
}
}
void quicksort(int a[],int n)//快速排序
{
int num;
if(n<2)
return;
else
{
num=cut(a,n);//分解函数
quicksort(a,num);//继续排序
quicksort(&a[num-1],n-num);//分解的后半部分
}
}
int cut(int a[],int n)//分解函数
{
int *i=a,*j=&a[n-1];
int t=a[n/2];
int num;
num=0;
a[n/2]=*i;
for(;i==j;)
{
for(;;j--)
if(*j<t)
{
*i=*j;
i++;num++;
break;
}
for(;;i++)
{
num=num+1;
if(*i>t)
{
*j=*i;
j--;
break;
}
}
}
a[num]=t;
return num;
}
编译、执行都没错
我的vc6.0,winXP