#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BLUE 'b'
#define WHITE 'w'
#define RED 'r'
//这里是为了实现将一行写到多行实现宏定义的要求(宏定义要求宏名用一串字符替换)
#define SWAP(x, y) { char temp;/
temp = color[x];/
color[x] = color[y];/
color[y] = temp; }
int main()
{
char color[] = {'r', 'w', 'b', 'w', 'w',
'b', 'r', 'b', 'w', 'r', '/0'};
int wFlag=0;
int bFlag = 0;
int rFlag=strlen(color);
int i;
for(i=0;i<strlen(color);i++)
printf("%c ",color[i]);
printf("/n");
while(wFlag<=rFlag)
{
if(color[wFlag]==WHITE)
{
wFlag++;
}
else if(color[wFlag]==BLUE)
{
SWAP(wFlag,bFlag);
wFlag++,bFlag++;
}
else
{
while(wFlag==rFlag && color[rFlag]==RED)
rFlag--;
SWAP(wFlag,rFlag);
rFlag--;
}
}
for(i=0;i<strlen(color);i++)
printf("%c ",color[i]);
printf("/n");
return 0;
}