a,b,c,d全排列C语言,C++,排列组合
打印abcd24种排列方法,每行代码后面要有注解,我初一,老实讲搜索,回朔,我有点听不懂,所以来请教...
打印abcd24种排列方法,每行代码后面要有注解,我初一,老实讲搜索,回朔,我有点听不懂,所以来请教
展开
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 ;
}
#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就是输出一个字符
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
排列是用A表示,A44=4x3x2x1=24
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询