user-0 提问: 用c语言编写程序 使用快速排序算法对数组中的数据进行 降序 排序（要求随机生成10个1-99之间的要排序的数据，放入数组中。）

回复:
user: user-1

user: user-2
content: 生成随机数很方便，你直接用rand就行，我就不写代码了  快速排序给你个我之前写的，分为递归版与非递归版，你随便先一个就行  里面又分升序与降序，如果你要降序，把升序那部分的代码删除了  //快速排序（递归版） void QSort(int* a,int left,int right) { 	int tmp = a[left]; 	int p = left; 	int i = left,j = right; 	while(i<=j) 	{ 		//升序 		{ 			while(a[j]>=tmp && j>=p) 				j--; 			if(j>=p) 			{ 				a[p] = a[j]; //比划分元小的交换到左边 				p = j; 			} 			while(a[i]<=tmp && i<=p) 				i++; 			if(i<=p) 			{ 				a[p] = a[i]; //比划分元大的交换到右边 				p = i; 			} 		} 		 		//降序 		{ 			while(a[j]<=tmp && j>=p) 				j--; 			if(j>=p) 			{ 				a[p] = a[j]; //比划分元大的交换到左边 				p = j; 			} 			while(a[i]>=tmp && i<=p) 				i++; 			if(i<=p) 			{ 				a[p] = a[i]; //比划分元小的交换到右边 				p = i; 			} 		} 	} 	a[p] = tmp; 	if(p-left>1) 		QSort(a,left,p-1); 	if(right-p>1) 		QSort(a,p+1,right); }  //快速排序（非递归版） int Partition(int* a,int left,int right) { 	int pivot = a[right]; 	while(left<right) 	{ 		//升序 		{ 			while(a[left]<pivot && left<right) 				left++; 			if(left<right) 				a[right--] = a[left]; 			while(a[right]>pivot && left<right) 				right--; 			if(left<right) 				a[left++] = a[right]; 		} 		 		 		//降序 		{ 			while(a[left]>pivot && left<right) 				left++; 			if(left<right) 				a[right--] = a[left]; 			while(a[right]<pivot && left<right) 				right--; 			if(left<right) 				a[left++] = a[right]; 		} 	} 	a[left] = pivot; 	return left; }

user: user-0
content: 要 快速排序 的 怎么把下面的快速排序改为降序的 （代码非原创）     #include<stdio.h>       #include<stdlib.h>       #include<time.h>       #define NUMBER 10   //NUMBER为数组的大小        void quickSort(int [],int,int);       void display(int [],int);       int main()       {         int num[NUMBER];         int randValue = 0;         int i,temp;                  srand(time(NULL));         //随机生成NUMBER个1-100的随机数          for(i=0;i<NUMBER;i++)         {               randValue=1+(int)rand()%100;               num[i]=randValue;         }         srand(time(NULL));         printf("使用快速排序算法\n");         printf("排序前：");         display(num,NUMBER);//打印数组内容          quickSort(num,0,NUMBER-1);//调用快速排序算法          printf("排序后：");         display(num,NUMBER);                return 0;       }       void quickSort(int num[],int lower,int upper)       {           int partition(int [],int ,int);           int pivot;           //递归调用            pivot=partition(num,lower,upper);           if(lower < pivot)               quickSort(num,lower,pivot-1);           if(pivot < upper)               quickSort(num,pivot+1,upper);              }              int partition(int num[],int left,int right)       {            int pivot,temp;                        pivot = num[left];            while(left<right)            {               //从右往左扫描                while(num[right]>=pivot && left<right)                   right--;               if(right!=left)               {                   num[left]=num[right];                   left++ ;               }                              //从左往右扫描                while(num[left]<=pivot && left<right)                   left++;               if(right!=left)               {                   num[right]=num[left];                   right--;               }            }            num[left]=pivot;            return(left);       }              //打印数组        void display(int num[],int count)       {           int i;           for(i=0;i<count;i++)           {                printf("%d\t",num[i]);           }           printf("\n");       }

user: user-3
content: 参考：  #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { 	int a[10]; 	int i, j, t; 	srand(time(NULL)); 	for (i = 0; i < 10; i++) 		a[i] = rand() % 100; 	for (i = 0; i < 9; i++) 	for (j = i + 1; j < 10; j++) 	if (a[i]<a[j]) 	{ 		t = a[i]; 		a[i] = a[j]; 		a[j] = t; 	} 	for (i = 0; i < 10; i++) 		printf("%d ", a[i]); }

user: user-0
content: 规定是要数组的 不用指针 能写个数组的吗？麻烦你了