关于C语言quicksort的问题。急。

我在用c写一个从一个文件中读出一组数字进行quicksort,然后存在一个新的文件中,现在只知道排序部分错了,但不知道错哪儿了,
;
}

main()
{
FILE *fp;
char filename[150];
int array[100];
printf("input filename:\n");
while(1)
{
gets(filename);
fp=fopen(filename,"r");
if(fp!=NULL)
break;
else
printf("error! input again.\n");
}
int a,i;
int length=0;
for(i=0;feof(fp)==0;++i)
{
fscanf(fp,"%d",&a);
array[i]=a;
length++;
}
fclose(fp);

Quicksort(array,0,length);

fp=fopen("g:\\1.txt","w+");
for(i=0;i<=length;i++)
{

fprintf(fp,"%d\n",array[i]);
}
fclose(fp);
}
复制粘贴少了一段
求人看看quicksort哪里错了

void Quicksort(int s[],int left,int right) /**/
{

if(left<right) /**/
{
int p=s[left];
int pivot,i;
pivot=left;
for(i=left+1;i<=right;i++)
{
if(s[i]<p)
{
pivot++;
swap(s[pivot],s[i]);
}
}
swap(s[pivot],s[left]);
Quicksort(s,left,pivot-1);
Quicksort(s,pivot+1,right); /**/
}
return;
}

#include <stdio.h>
#include <stdlib.h>

int comp(const void *a,const void *b) {
return *(int*)a - *(int*)b;
}

int main() {
FILE *fp;
char filename[150];
int array[100];
printf("input filename:\n");
while(1) {
gets(filename);
fp = fopen(filename,"r");
if(fp != NULL) break;
else printf("error! input again.\n");
}
int a,i;
int length = 0;
for(i = 0; feof(fp) == 0; ++i) {
fscanf(fp,"%d",&a);
array[i] = a;
length++;
}
fclose(fp);
qsort(array,length,sizeof(int),comp);
fp = fopen("g:\\1.txt","w+");
for(i = 0; i < length;i++) {
fprintf(fp,"%d\n",array[i]);
}
fclose(fp);
return 0;
}

追问

哪里错了?求解,拜托拜托

温馨提示:答案为网友推荐,仅供参考
相似回答