a,b,c,d全排列C语言,C++,排列组合

打印abcd24种排列方法,每行代码后面要有注解,我初一,老实讲搜索,回朔,我有点听不懂,所以来请教... 打印abcd24种排列方法,每行代码后面要有注解,我初一,老实讲搜索,回朔,我有点听不懂,所以来请教 展开
 我来答
留哥小暗
2014-07-13 · TA获得超过162个赞
知道答主
回答量:207
采纳率:0%
帮助的人:87.3万
展开全部
//既然那些你看不懂,就只能用这种方法了
#include <stdio.h>
using namespace std;

int main(){
char a[4] = {'a','b','c','d'};//定义字符数组
int i , j , k , l , cnt = 0;//定义循环变量及当前为第cnt个组合
for(i = 0 ; i < 4 ; i++){//a的所有可能位置
for(j = 0 ; j < 4 ; j++){//b的所有可能位置
if(j != i){//如果b的当前位置a没有占去,则b可以在当期位置
for(k = 0 ; k < 4 ; k++){//c的所有可能位置
if(k != i && k != j){//如果c的当前位置a、b没有占去,则c可以在当期位置
for(l = 0 ; l < 4 ; l++){//d的所有可能位置
//如果d的当前位置a、b、c没有占去,则d可以在当期位置
if(l != k && l != j && l != i){
cnt++ ;//统计当前为第几个
//输出当前的序列
printf("第 %2d 个为: %c %c %c %c \n" ,cnt, a[i],a[j],a[k],a[l]);
}
}
}
}
}
}
}
return 0 ;
}
更多追问追答
追问
printf("第 %2d 个为: %c %c %c %c \n" ,cnt, a[i],a[j],a[k],a[l]);

解释一下看不懂
追答
printf就是输出 
%2d就是以两位格式输出整型的数
%c就是输出一个字符
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忽忽上升
2014-07-13 · TA获得超过1911个赞
知道小有建树答主
回答量:1166
采纳率:70%
帮助的人:577万
展开全部
#include <iostream>
#include <algorithm>  //为了使用全排函数
using namespace std;

int main()
{
char a[] = {'a','b','c','d'};
do{  //输出
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<endl;}
while (next_permutation(a,a+4));  //全排列
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuyangqin0627
2014-07-13 · TA获得超过461个赞
知道小有建树答主
回答量:518
采纳率:41%
帮助的人:189万
展开全部
排列是用A表示,A44=4x3x2x1=24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式