C语言快速排序算法找错误。。。跪求大神改错误

#include<stdio.h>#include<conio.h>int TestArray[20];//需要排序的数组,长度为20 int numsize;//int a[20];int n;int temp;void QuickSort(int a[], int numsize);//QuickSort函数声明 int main(){ int num; printf("\nPlease input the number of TestArray what you want :\n"); scanf("%d",&n);//测试数组的长度 printf("Please input the TestArray:\n"); for(num=1;num<=n;num++) scanf("%d",&(TestArray[num]));//从键盘输入测试数组 QuickSort(TestArray[num], n); for(num=1;num<=n;num++) printf("%d,",TestArray[num]); printf("\n"); }void QuickSort(int a[], int numsize)//a是整形数组,numsize是元素个数{ int i = 0; int j = numsize-1; int temp = a[0];/*指定参考值temp大小*/ if(numsize>1)/*确保数组长度至少为2,否则无需排序*/ { while(i<j)/*循环结束条件*/ { /*从后向前搜索比temp小的元素,找到后填到a[i]中并跳出循环*/ for(;j>i;j--) if(a[j]<temp) { a[i++]=a[j]; break; }/*从前往后搜索比temp大的元素,找到后填到a[j]中并跳出循环*/ for(;i<j;i++) if(a[i]>temp) { a[j--]=a[i]; break; } } a[i] = temp;/*将保存在temp中的数放到a[i]中*/ QuickSort(a,i);/*递归,对前i个数排序*/ QuickSort(a[i+1],numsize-i-1);/*对i+2到numsize这numsize-1-i个数排序*/ }}

QuickSort(TestArray[num], n)传值错误,函数传数组的时候不能加[],改为QuickSort(TestArray, n),同理QuickSort(a[i+1],numsize-i-1);也要改
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜