调度站入口有n节软席和硬席车厢,将所有软席调到硬席之前
代码如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX 999
typedef int status;
//即将入站的所有车厢已存入数组A中
status ruzhan(char A[])
{
char stack[MAX];
int top = -1;
char x;
int i = 0;
while(A[i] != '#')
{
if(A[i] == 'H') //硬席车厢,入栈
stack[++top] = A[i];
else if(A[i] == 'S') //软席车厢,直接输出
printf("%c\n", A[i]);
i++;
}
for (int i=top; i>=0; i--)
printf("%c\n", stack[i]);
top = -1;
}
int main()
{
char A[MAX];
int i = 0;
char x;
printf("请输入即将入站的车厢(H为硬席车厢,S为软席车厢,以'#'为终止符):\n");
x = getchar();
while(x != '#')
{
A[i++] = x;
x = getchar();
}
getchar();
A[i] = '#';
ruzhan(A);
return 0;
}