用C语言写输入 用一个字符串代表小朋友队列。字符串中只会出现两个字符,分别代表小男孩和小女孩,首先出现的字符代表小男孩,另一个字符代表小女孩。小孩总数不超过100。 输出 按小女孩编号顺序,顺序输出手拉手离开队列的小男孩和小女孩的编号对,每行一对编号,编号之间用一个空格分隔。
时间: 2024-03-07 21:49:32 浏览: 66
C语言字符串的输入和输出
好的,我可以帮你解决这个问题。以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
int main() {
char queue[MAX_N + 1];
fgets(queue, sizeof(queue), stdin); // 读入队列字符串
int len = strlen(queue);
int boy[MAX_N], girl[MAX_N]; // 用两个数组分别存储男孩和女孩的编号
int b_idx = 0, g_idx = 0; // 分别表示男孩和女孩数组的当前下标
// 遍历队列字符串,将男孩和女孩的编号分别存储到对应数组中
for (int i = 0; i < len; i++) {
if (queue[i] == 'B') {
boy[b_idx++] = i + 1;
} else {
girl[g_idx++] = i + 1;
}
}
// 按小女孩编号顺序输出手拉手离开队列的小男孩和小女孩的编号对
for (int i = 0; i < g_idx; i++) {
printf("%d %d\n", boy[i], girl[i]);
}
return 0;
}
```
代码实现的思路是先读入队列字符串,然后遍历字符串,将男孩和女孩的编号分别存储到对应的数组中。最后按小女孩的编号顺序输出手拉手离开队列的小男孩和小女孩的编号对。
阅读全文