#include<stdio.h> #include<stdlib.h> #define MaxSize 100 void QuickSort(int R[],int s,int t) { int i=s,j=t,tmp; if(s<t) { tmp=R[s]; while(i!=j) { while(j>1&&tmp<R[j]) j--; R[i]=R[j]; } R[i]=tmp; QuickSort(R,s,i-1); QuickSort(R,i+1,t); } } int main() { FILE *fp; int n=0,R[MaxSize],i; int choice1,choice2; fp=fopen("C:\Users\86176\Desktop\sort.txt","r+"); if(fp==NULL) { printf("Failed to open file."); exit(0); } printf("原始数据为:\n"); while(fscanf(fp,"%d",&R[n])==1) { printf("%d",R[n]); printf("\n"); n++; } printf("\n"); QuickSort(R,0,n-1); printf("ceshi\n"); printf("排序后的数据为:\n"); for(i=0;i<n;i++) { printf("%d",R[i]); printf("\n"); } fclose(fp); return 0; }修改代码
时间: 2024-04-25 16:26:41 浏览: 69
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 100
void QuickSort(int R[],int s,int t) {
int i=s,j=t,tmp;
if(s<t) {
tmp=R[s];
while(i<j) { // 修改这里的循环条件
while(j>i&&R[j]>=tmp) j--; // 修改这里的判断条件
R[i]=R[j];
while(i<j&&R[i]<=tmp) i++; // 修改这里的判断条件
R[j]=R[i];
}
R[i]=tmp;
QuickSort(R,s,i-1);
QuickSort(R,i+1,t);
}
}
int main() {
FILE *fp;
int n=0,R[MaxSize],i;
fp=fopen("C:\\Users\\86176\\Desktop\\sort.txt","r+"); // 修改这里的文件路径
if(fp==NULL) {
printf("Failed to open file.");
exit(0);
}
printf("原始数据为:\n");
while(fscanf(fp,"%d",&R[n])==1) {
printf("%d\n",R[n]); // 修改这里的输出方式
n++;
}
printf("\n");
QuickSort(R,0,n-1);
printf("排序后的数据为:\n");
for(i=0;i<n;i++) {
printf("%d\n",R[i]); // 修改这里的输出方式
}
fclose(fp);
return 0;
}
阅读全文