中易网

怎么用C语言进行排列?比如,1到6 六个数,输出所有可能的组合

答案:1  悬赏:40  
解决时间 2021-03-28 20:49
怎么用C语言进行排列?比如,1到6 六个数,输出所有可能的组合
最佳答案
刚回答了一个组合的,现在是排列的。方法类似,采用递归方法。

void CopyArrayWithExcept(int a[], int nCount, int b[], int nExcept)
{
for(int i=0, j=0; i{
if(i != nExcept)
{
b[j++] = a[i];
}
}
}

int g_nPrintCount = 0; //为了控制每行输出10个
int ArrangeAll(int a[], int nCount, char* szPre)
{
if(nCount == 1)
{
printf("%s%d ", szPre, a[0] );
if( (++g_nPrintCount%10==0))
{
printf("\n");
}
return 1;
}
else
{
int nTotal=0;
for(int i=0; i{
char szBuf[10] ={0};
int *pNum = new int[nCount-1];

sprintf(szBuf, "%s%d", szPre, a[i]);
CopyArrayWithExcept(a, nCount, pNum, i);

nTotal += ArrangeAll(pNum, nCount-1, szBuf);

delete[] pNum;
}

return nTotal;
}

}

int main()
{
int a[] = {1,2,3,4,5,6};
int nTotal = ArrangeAll(a, sizeof(a)/sizeof(a[0]), "");
printf("\nTotal Count=%d\n", nTotal);
return 1;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男友爱无能,主要表现为在前段感情中全身心的
狗狗诱导剂有用吗 训练狗狗上厕所的方法
鲜丰 加盟
含羞草为什么害羞
电喷车在行驶过程中突然没电连双闪都不亮 一
一个装满水的正方体水桶,它的棱长是六分米,
石岛吉兴商场价格欺诈行为
五粮液 52度五粮液酒神酒怎么样
武江区韶关国跆龙飞健身训练中心地址在哪里啊
三秒胶弄手上怎么去除
上海浦东机场附近酒店,求推荐,要高端大气上
运城哪里有吮指排骨吗
58x()<465()里最大能填几。
小孩晚上不睡觉的危害
体重过重该怎么减肥
推荐资讯
晒伤后起水泡,弄破了怎麼办?
熏香炉好还是熏香机好?
苹果手机4S设置通用网络WIFI是灰色,怎么办
婴儿出生10天了,老是吐黄水,吃了就吐,身上
激光祛斑后贴安适康水胶体敷料需什么时候换
苏州地区望领养一只狗狗,有赠送的人士联系
沈阳三好街附近那家的快递公司好的????要
两个月宝宝如何进行早期教育?进行早教有什么
下载物流信息网用户名不正确什么意思
重庆长寿晏家镇有哪些物流公司?顺便电话,谢
北京哪里批发现代出版社幼儿园教材
北京通州区梨园镇果园翠屏西路在几环
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?