C语言问题求详细解答,谢谢

2025-02-25 07:49:20
推荐回答(1个)
回答1:

代码贴出,供大家参考指正

能正确编译和运行了,不知可达到你要求,望采纳!

#include 
#include 
#include 
#define N 100
void printarray(int a[],int n)
{
int i;
for (i=0; i {
printf("%8d",a[i++]);
if (i % 10 == 0) 
printf("\n");
}
}
void swap(int a[],int i,int j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
}
void myqsort(int a[], int left, int right)
{
int i,last;
int m=(left+right)/2;
if (left >= right) return;
swap(a,m,left);
for (i=left+1,last=left; i<=right; i++)
if (a[i]<=a[left])
swap(a,i,++last);
swap(a,left,last);
myqsort(a,left,last-1);
myqsort(a,last+1,right);
}
void main(void)
{
int a[N];
int i;
srand(time(NULL)); //initialize pseudo number seed
for (i=0; i a[i]=rand() % 10000; //create random numbers
printf("before quick sorting:\n");
printarray(a,N);
myqsort(a,0,N-1); //quick sorting
printf("after quick sorting:\n");
printarray(a,N);
}