用c语言输出输入一串字母(长度小于10,字符不重复)以回车结束,输出所有字符的排列可能,每行一个(顺序不限)
时间: 2024-04-30 11:19:22 浏览: 17
以下是实现该功能的C语言代码:
```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);
return;
}
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("Please enter a string of characters (up to 10 characters with no duplicates):\n");
scanf("%s", str);
int len = strlen(str);
permute(str, 0, len - 1);
return 0;
}
```
程序首先从用户处获取输入的字符串,然后使用递归函数 `permute` 计算所有字符的排列组合。该函数使用了交换字符的方法来生成所有可能的排列组合,并在到达字符串末尾时打印结果。最终,程序输出所有可能的字符排列组合。