用c语言输出输入一个字符串(长度小于10,字符不重复)以回车结束,输出所有字符的排列可能,每行一个(顺序不限)
时间: 2024-05-02 11:16:31 浏览: 78
以下是一个用 C 语言实现的程序,可以输出输入字符串的所有排列可能:
```
#include <stdio.h>
#include <string.h>
void swap(char *a, char *b) {
char temp = *a;
*a = *b;
*b = temp;
}
void permute(char *str, int start, int end) {
if (start == end) {
printf("%s\n", str);
} else {
for (int i = start; i <= end; i++) {
swap(str + start, str + i);
permute(str, start + 1, end);
swap(str + start, str + i);
}
}
}
int main() {
char str[11];
printf("请输入一个长度小于10,字符不重复的字符串:\n");
scanf("%s", str);
int len = strlen(str);
printf("所有字符的排列可能如下:\n");
permute(str, 0, len - 1);
return 0;
}
```
该程序先输入一个字符串,然后调用 `permute` 函数进行排列。`permute` 函数采用递归实现,每次将字符串中第一个字符和后面的字符依次交换,然后继续递归处理剩余的字符。当递归到字符串的最后一个字符时,将该字符串输出。最终输出所有的排列可能。
阅读全文