请问这段代码有什么问题?我没有任何输出

问题描述 投票:0回答:0

请找出这段代码出了什么问题?我没有得到任何输出...它只是在不显示任何输出的情况下终止。我尝试了很多更改,但仍然无法找到我的代码有什么问题。

#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);
    }
}

我没有得到这段代码的任何输出。它只是终止。

c sorting quicksort
© www.soinside.com 2019 - 2024. All rights reserved.