开发者社区> 问答> 正文

编译通过,程序总是自动停止工作

#include<stdlib.h>
#include<stdio.h>
//exchange 函数,用来交换两个数
void exchange(int *a,int *b){
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}
//快排函数,把数组从A[P]到A[q]进行排序
void Qsort(int A[],int p,int q) {
    int i,j;
    for(i=p,j=p;i<=q-1;){
        if(A[i]<=A[q]){
            exchange(&A[i],&A[j]);
            i++;
            j++;
        }
        else i++;
    }
    exchange(&A[q],&A[j]);
    int a=q;
    q=j-1;
    Qsort(A,p,q);
    p=j;
    q=a;
    Qsort(A,p,q);
}
//主函数
int main()
{//这里先声明了一个数组
    int A[10]={2,6,3,22,56,36,54,25,64,33};
    Qsort(A,0,9);
    int i;
    for(i=0;i<=9;i++){
        printf("%d",A[i]);
    }
    return 0;
}

screenshot

展开
收起
a123456678 2016-03-24 10:57:10 1926 0
1 条回答
写回答
取消 提交回答
  •  #include<stdlib.h>
    #include<stdio.h>
    
    //快排函数,把数组从A[P]到A[q]进行排序
    void Qsort(int A[],int p,int q)
    {
        int i = p;
        int j = q;  
        int temp = A[i]; 
    
        if( p < q)
        {          
            while(i < j) 
            {
                while((A[j] >= temp) && (i < j))
                { 
                    j--; 
                }
                A[i] = A[j];
                while((A[i] <= temp) && (i < j))
                {
                    i++; 
                }  
                A[j]= A[i];
            }
            A[i] = temp;
            Qsort(A,p,i-1);
            Qsort(A,j+1,q);
        }
        else
        {
            return;
        }
    }
    
    //主函数
    int main()
    {//这里先声明了一个数组
        int A[10]={2,6,3,22,56,36,54,25,64,33};
        Qsort(A,0,9);
        int i;
        for(i=0;i<=9;i++){
            printf("%d ",A[i]);
        }
        return 0;
    }
    2019-07-17 19:12:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
15分钟打造你自己的小程序 立即下载
小程序 大世界 立即下载
《15分钟打造你自己的小程序》 立即下载