这个快排程序有问题吗 总是出现对话框:遇到问题需要关闭

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:28:56
#include<stdio.h>

int a[20],i,j;

void input()
{
FILE *fin=fopen("sort.in","r");
for(i=0;;i<20) fscanf(fin,"%d",a[i++]);
fclose(fin);
}

void output()
{
FILE *fout=fopen("sort.out","w");
for(i=0;;i<20) fprintf(fout,"%d",a[i++]);
fclose(fout);
}

int swap(int *p,int *q)
{
i=*p;*p=*q;*q=i;
}
int compare(int left,int right)
{
int center=(left+right)/2;
if(a[center]<a[left]) swap(&a[left],&a[center]);
if(a[center]>a[right]) swap(&a[center],&a[right]);
if(a[left]>a[right]) swap(&a[left],&a[right]);
swap(&a[center],&a[right-1]);
return a[right-1];
}

void quicksort(int left,int right)
{
int pivot=compare(left,right);
i=left;j=right-1;

for(i=0;;i<20) fprintf(fout,"%d",a[i++]);

改成
for (i = 0; i < 20;)fprintf(fout, "%d", &a[i++]);
试下子

应该是有问题,要么是数组访问越界 ,要么就是递归出口有问题栈溢出