分类：电脑/网络-程序设计-C/C++
问题：1到9，9个数字，有362880种排列，如何用c语言将它们排出来? 
请大师们指点。最好给出源。谢谢！
回答：上面的有问题，首先对指针没有初始化，其次结果不合要求。题意要求输出9位数字的所有组合(这9位数字不能重复)，而给出的程序却只能输出有重复的组合。下面是我给出的修正。void func(char *num, int n) //输出1~n的所有排列(n<=9){  int i, j, len;  char ch;  if (n <= 0 || n > 9) {    printf("n must be greater than 0 and no more than 9.\n");    return;  }  len = strlen(num);  for (i = 1; i <= n; i++) {    itoa(i, &ch, 10);    for (j = 0; j < len; j++) {      if (ch == num[j]) break;    }    if (j < len) continue;    strcat(num, &ch);    func(num, n); //递归调用    num[len] = 0;  }  if (n == len)     printf("%s\n", num);}void main(){char a[10]={0};func(a,9);}