当前位置: 代码迷 >> C语言 >> 快速排序遇到了问题,求助
  详细解决方案

快速排序遇到了问题,求助

热度:151   发布时间:2006-06-13 23:30:13.0
快速排序遇到了问题,求助
#include<stdio.h>
#include<stdlib.h>
void main()
{
void quicksort(int ,int ,int );
int num[100];
for(int i=0;i<100;i++)
{
num[i]=rand();
printf("%-7d ",num[i]);
}
printf("After sort the num is:");
quicksort(num,0,100); //显示有错误的地方
for(int k=0;k<100;k++)
printf("%-7d ",num[i]);
}
void quicksort(int data[],int low,int high) //快速排序
{
int i,pivot,j;
if(low<high)
{
pivot=data[low]; i=low, j=high;
while(i<j)
{
while(i<j &&data[j]>=pivot) j--;
if(i<j) data[i++]=data[j];
while(i<j&&data[i]<=pivot) i++;
if(i<j)data[j--]=data[i];
}
data[i]=pivot;
quicksort(data,low,i-1);
quicksort(data,i+1,high);
}
}
错误提示:'quicksort' : cannot convert parameter 1 from 'int [100]' to 'int'
搜索更多相关的解决方案: 快速  include  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-13 15:57:03
feng1256

等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
  得分:0 
做了些优化,最小的修改

[CODE]
#include "stdio.h"
#include "stdlib.h"
#include "time.h"

int main()
{
void Quicksort(int* ,int ,int );
int num[100];

srand( time(NULL) ); /*初始化种子,当然还有别的办法*/
for(int i=0;i<100;i++)
{
num[i]=rand();
printf("%-7d ",num[i]);
}
printf("After sort the num is:\n");
Quicksort(num,0,100);
for(int k=0;k<100;k++)
printf("%-7d ",num[k]);

return 0;
}
void Quicksort(int data[],int low,int high)
{
int i,pivot,j;

if(low<high)
{
pivot=data[low]; i=low, j=high;
while(i<j)
{
while(i<j &&data[j]>=pivot)
j--;
if(i<j) data[i++]=data[j];
while(i<j&&data[i]<=pivot)
i++;
if(i<j)data[j--]=data[i];
}
data[i]=pivot;
Quicksort(data,low,i-1);
Quicksort(data,i+1,high);
}
}


[/CODE]


----------------解决方案--------------------------------------------------------

--------------------Configuration: dt - Win32 Debug--------------------
Linking...
dt.obj : error LNK2001: unresolved external symbol "void __cdecl Quicksort(int *,int,int)" (?Quicksort@@YAXPAHHH@Z)
Debug/dt.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

dt.exe - 2 error(s), 0 warning(s)


这是我用VC++运行时出的错误???
这是怎么回事???


----------------解决方案--------------------------------------------------------

--------------------Configuration: dt - Win32 Debug--------------------
Linking...
dt.obj : error LNK2001: unresolved external symbol "void __cdecl Quicksort(int *,int,int)" (?Quicksort@@YAXPAHHH@Z)
Debug/dt.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

dt.exe - 2 error(s), 0 warning(s)


这是我用VC++运行时出的错误???
这是怎么回事???


----------------解决方案--------------------------------------------------------

--------------------Configuration: dt - Win32 Debug--------------------
Linking...
dt.obj : error LNK2001: unresolved external symbol "void __cdecl Quicksort(int *,int,int)" (?Quicksort@@YAXPAHHH@Z)
Debug/dt.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

dt.exe - 2 error(s), 0 warning(s)


这是我用VC++运行时出的错误???
这是怎么回事???


----------------解决方案--------------------------------------------------------
符号  !  定义有错 !!
----------------解决方案--------------------------------------------------------
3楼的仍有错误
void Quicksort(int* ,int ,int );声明时应该是
void Quicksort(int data[],int low,int high);
不然还会出现同样的错误
'quicksort' : cannot convert parameter 1 from 'int [100]' to 'int'



先运行--------------------------------------3楼留
----------------解决方案--------------------------------------------------------
谢谢各位了
我已经运行出来了
在vc++6.0平台
已经没有错误了
谢谢^_^
----------------解决方案--------------------------------------------------------
  相关解决方案