0

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

#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");
}

它正在打印一些数字而不是给定的字符串..请帮助

4

1 回答 1

8

有你的问题:

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

应该

 printf("%s\n", a);
于 2012-10-09T13:00:10.177 回答