编辑代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
enum colors{red,white,blue};
void create(enum colors a[],int n);
void sort(enum colors a[],int n);
void putout(enum colors a[],int n);

int main(){
	enum colors a[N];
	create(a,N);
	printf("初始队列为:\n");
	putout(a,N);
	sort(a,N);
	printf("目前对列为:\n");
	putout(a,N);
	return 0;
	 
}

void create(enum colors a[],int n){
	int i,temp;
	srand(time(NULL));
	for(i=0;i<n;i++){
		temp=rand()%3;
		a[i]=(enum colors)temp;
	}
	return;
}

void sort(enum colors a[],int n){
	int i=0,k=n-1,j=0;
	enum colors change;
	while(j<=k){
		switch(a[j]){
			case red:change=a[i];a[i]=a[j];a[j]=change;i++;j++;break;
			case white:j++;break;
			case blue:change=a[k];a[k]=a[j];a[j]=change;k--;break;
		}
	}
	return;
}

void putout(enum colors a[],int n){
	int i;
	for(i=0;i<n;i++){
		switch(a[i]){
			case red:printf("red ");break;
			case white:printf("white ");break;
			case blue:printf("blue ");break;
		}
	
	}
		printf("\n");
	return;
}