gpt4 book ai didi

c - 生成所有列表(排列)

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:52 24 4
gpt4 key购买 nike

我很不确定为什么我的代码在我输入 6 个或更多数字/字符时会执行此操作,而它只显示部分输出。 (我知道数字/字符不会影响任何东西)。

例如,如果我输入 cat,它会列出所有可能的变体:猫cta行为空中交通管制战术茶叶

但是当我输入 123456(或任何 6 个以上字母的字符串)时:它开始显示在 462513-612345(如果你明白我的意思)。其余的 (123456-462513) 怎么了?

    #include <stdio.h>
#include <string.h>

void swap (char *X, char *Y)
{
char Z;
Z = *X;
*X = *Y;
*Y = Z;
}

void mixmatch (char *A, int i, int n)
{
int j;
if (i == n)
printf("%s\n", A);
else
{
for (j = i; j <= n; j++)
{
swap((A+i), (A+j));
mixmatch(A, i+1, n);
swap((A+i), (A+j));
}
}
}

int main()
{
char A[100];
printf ("Enter the string/set of numbers: ");
gets(A);

int k;
k=strlen(A);
mixmatch(A, 0, k-1);

return 0;
}

最佳答案

问题不在于您的代码,问题在于 Windows cmd.exe 没有足够的缓冲区来显示所有排列。

我用 cygwin 试过了,它工作得很好。

以下截图为证:

使用cmd.exe

enter image description here

用cygwin

enter image description here

关于c - 生成所有列表(排列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com