使用c代码的排列函数

时间:2012-10-09 12:58:40

标签: c

我编写了一个打印给定字符串的所有排列的程序。但它印刷了一些奇怪的东西。代码如下:

#include <stdio.h>

void swap (char *x, char *y)
{
  char temp;
  temp = *x;
  *x = *y;
  *y = temp;
}

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

int main(void)
{
  char a[100];
  gets(a);

  int k;
  k=strlen(a);
  permute(a, 0, k-1);

  system("pause");
}

打印一些数字而不是给定字符串.. plz help

1 个答案:

答案 0 :(得分:8)

有你的问题:

 printf("%d\n", a);

应该是

 printf("%s\n", a);