请找出这段代码出了什么问题?我没有得到任何输出...它只是在不显示任何输出的情况下终止。我尝试了很多更改,但仍然无法找到我的代码有什么问题。
#include <stdio.h>
int swap(int *a,int i,int j);
int quicksort(int a[],int start,int end);
int partition(int a[],int start,int end);
void printarray(int a[],int size)
{
for (int i=0;i<size;i++)
{
printf("%d\n",a[i]);
}
}
int main()
{
int n;
printf("Enter number of elements\n");
scanf("%d",&n);
int a[n];
printf("Enter elements in the array\n");
for (int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printarray(a,n);
int size=n;
quicksort(a,0,n-1);
printarray(a,n);
}
int swap(int a[],int i,int j)
{
int temp;
temp=*(a+i);
*(a+i)=*(a+j);
*(a+j)=temp;
}
int partition(int a[],int start,int end)
{
int pivot=a[end];
int i=start-1;
for (int j=start;i<end;j++)
{
if (a[j]<=pivot)
{
i++;
swap(a,i,j);
}
}
swap(a,i+1,end);
return (i+1);
}
int quicksort(int a[],int start,int end)
{
if (start<end)
{
int p = partition(a,start,end);
quicksort(a,start,p-1);
quicksort(a,p+1,end);
}
}
我没有得到这段代码的任何输出。它只是终止。