求大虾帮我改该这个快速排序

来源:百度知道 编辑:UC知道 时间:2024/06/03 14:38:04
麻烦哪位大虾帮我改该这个快速排序,要求做成文件输入输出,输入10个数,将其从小到大输出,c语言的,麻烦了!

void sort(long l,long r,long *a)
{
long x=a[(l+r)/2];
long i=l,j=r;
do
{
while (a[i]<x) i++;
while (x<a[j]) j--;
if (i<=j)
{
long y;
y=a[i];
a[i]=a[j];
a[j]=y;
i++;
j--;
}
}
while (i<=j);
if (i<r) sort(i,r,a);
if (l<j) sort(l,j,a);
}

#include<cstdio>
FILE *fin=fopen("Measure.in","r");
FILE *fout=fopen("Measure.out","w");
int main()
{
long n;
fscanf(fin,"%ld",&n);
fclose(fin);
fclose(fout);
}

以上的没有错误
#include<stdio.h>/*第一,要写好文件名*/
int main() {
long n[10];
int i;
FILE *fin=fopen("Measure.in","r");/*第二,最好放到main函数里;;;另外Measure.in中的数据个数应该是已知的,我做的是一个包含10个数据的Measure.in文件*/
FILE *fout=fopen("Measure.out","w");
for(i=0;i<10;i++)fscanf(fin,"%ld",&n[i]);
sort(0,9,n);
for(i=0;i<10;i++)printf("%7ld",n[i]);
for(i=0;i<10;i++)fprintf(fout,"%7ld",n[i]);
fclose(fin);
fclose(fout);
getch();
}
/*还要注意,你的文件名是Measure.in,所以你要显示文件扩展名,把文本格式txt也改掉,否则你的文件名就是Measure.in.txt了*/

/*注意看过了要给我加分,最好能再最加点分数*/
/*因为我是在晚10点下班后帮你做的*/
/*有问题再联系*/
/*下面是可以在我的机器上正确运行的代码*/

void sort(long l,long r,long *a){
long x=a[(l+r)/2];
long i=l,j=r;
do{
while (a[i]<x) i++;
while (x<a[j]) j--;
if (i<=j){
long y;
y=a[i];
a[i]=a[j];
a[j]=y;
i++;
j--;