又是一个段错误,帮忙看下
#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','b','w','r','\0'};
int wFlag=0;
int bFlag=0;
int rFlag=strlen(color)-1;
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(bFlag,wFlag);
bFlag++;
wFlag++;
}
else
{
while(wFlag<rFlag&&color[rFlag]==RED)
rFlag--;
swap(rFlag,wFlag);
rFlag--;
}
}
for(int k=0;k<strlen(color);k++)
printf("%c",color[k]);
printf("%n");
return 0;
}
#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','b','w','r','\0'};
int wFlag=0;
int bFlag=0;
int rFlag=strlen(color)-1;
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(bFlag,wFlag);
bFlag++;
wFlag++;
}
else
{
while(wFlag<rFlag&&color[rFlag]==RED)
rFlag--;
swap(rFlag,wFlag);
rFlag--;
}
}
for(int k=0;k<strlen(color);k++)
printf("%c",color[k]);
printf("\n");//这里写错了,应该是\n
return 0;
}