String[ ] args 2021-03-15 20:28 采纳率: 0%
浏览 30
已结题

快速排序的一个代码 不知道为什么出问题

#include<stdio.h>
int swap(int *a,int b,int c)
{
	int d=a[b];
	a[b]=a[c];
	a[c]=d;
}
int digui(int *a,int b,int c)
{
	if(b>=c)
	{
		return 0;
	}
	int d=b,e=c;
	int f=a[b];
	while(b!=c)
	{
		while(a[c]>f&&b!=c)
		{
			c--;
		}
		swap(a,a[b],a[c]);
		b++;
		while(a[b]<f&&b!=c)
		{
			b++;
		}
		swap(a,a[b],a[c]);
		if(b==c)
		{
			a[b]=f;
		}
	}
	digui(a,e+1,c);
	digui(a,b,d-1);
}
int main()
{
	int a[10],i;
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
	digui(a,0,9);
	for(i=0;i<10;i++)
	{
		printf("%d",a[i]);
	}
}

为什么会输出不了结果呢 求大佬解决

  • 写回答

2条回答 默认 最新

  • upc_hxc 2021-03-15 21:43
    关注

    1、digui()和swap()两个函数返回值都没有,编都编不过,怎么输出结果呢?

    2、整个思路就不对,很绕而且不能解决问题,建议先看看成熟的排序算法

    评论

报告相同问题?