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

与えられた文字列の代わりにいくつかの数字を出力していました..plzhelp

4

1 に答える 1

8

あなたの問題があります:

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

する必要があります

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