C语言列问题 从键盘输入一个整数n,请输入1,2,……,n的所有排列如n=3,则输出为1 2 3 1

发布时间:2021-03-15 08:04:28

C语言列问题 从键盘输入一个整数n,请输入1,2,……,n的所有排列如n=3,则输出为1 2 3 1 3 2 213 231 31 2 3 1 3 2 2 1 3 2 3 1 3 1 2

网友回答

#include
void perm(int* data, int n, int curr)
{ if (curr==n-1)
{ for (int i = 0; i printf(%d, data[i]);
printf(\n);
} else { for (int i = curr; i { int t; t = data[curr], data[curr] = data[i], data[i] = t;
perm(data, n, curr+1);
t = data[curr], data[curr] = data[i], data[i] = t;
} }}int main()
{ int array[128] = {0};
int n = 0, i = 0;
scanf(%d, &n);/*没有数据合法性检查*/
for (i = 0; i perm(array, n, 0);
return 0;
}4123412431324134214321423213421432314234124312413321432413124314234123421423142134321431241324123Press any key to continue
以上问题属网友观点,不代表本站立场,仅供参考!