我有四个数(如1,3,6,7)怎么用c语言编写:四个数所有排列组合

 我来答
zsthit
2012-07-19 · TA获得超过463个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:172万
展开全部

#include <stdio.h>

#include <stdlib.h>

void swap(int &a, int &b)

{

    int temp = a;

    a = b;

    b = temp;

}

void Permutation(int *pStr, int begin, int end)

{

 if(begin == end - 1) //只剩一个元素

 {

     int i;

  for(i = 0; i < end; i++) //打印

   printf("%d ", pStr[i]);

  printf("\n");

 }

 else

 {

     int k;

  for(k = begin; k < end; k++)

  {

   swap(pStr[k], pStr[begin]); //交换两个字符

   Permutation(pStr, begin + 1, end);

   swap(pStr[k],pStr[begin]);  //恢复

  }

 }

}

int main()

{

    int a[] = {1,3,6,7};

    Permutation(a, 0, 4);

 getchar();

    return 0;

}

 

 

 

 

更多追问追答
追问
Good job!
追答
有帮助就行,给个满意回答吧,嘿嘿
匿名用户
2012-07-19
展开全部
// it generates all the permutaions of 1,3,6,7
// hope you find my code help, correct me if I am wrong
1111
1113
1133
...
1367
...
6777
7777
void genPerm(char input[], char output[], int len, int num)

{
if(num == len)
{
output[4] = '\0';
cout << output << endl;
return;
}
for(int i = 0; i < len; i++)
{
output[num] = input[i];
genPerm(input, output, len, num+1);
}
}

int main()
{
char a[] = "1367";
char b[5];
doit(a,b,4,0);
return 0;
}
更多追问追答
追问
用c怎么写】
追答
This is completely C code
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式