永发信息网

c语言作业,输出四个数A,B,C,D的全排列

答案:4  悬赏:70  手机版
解决时间 2021-03-21 14:24
  • 提问者网友:我的未来我做主
  • 2021-03-20 21:59
c语言作业,输出四个数A,B,C,D的全排列
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-03-20 22:49
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
    int num[4]={1,2,3,4};
    do
    {
        printf("%c,%c,%c,%c\n",num[0]+'A'-1,num[1]+'A'-1,num[2]+'A'-1,num[3]+'A'-1);
    }while(next_permutation(num,num+4));
    return 0;
}可以借助于stl模板中的next_permutation函数,这个函数是按照字典序不停的取该序列的下一个序列,直到结束。然后输出的时候讲数字转化为你要的字母即可。

例如 第一个序列是1,2,3,4,--》A,B,C,D
全部回答
  • 1楼网友:怙棘
  • 2021-03-21 00:24
只要结果生成的话,用木头字典工具集里的排列字典生成
  • 2楼网友:底特律间谍
  • 2021-03-21 00:10
c: #include <stdio.h> #include <stdlib.h> char letters[]={"ABCDEFGHIJKLMOPQRSTUVWXYZ"}; void pai(int*stack,int n,int i){     if(i==n){         for(int j=0;j<i;j++){             printf("%c",letters[stack[j]]);         }         printf("\n");     }else{         int t;         for(int j=0;j<n;j++){             t=1;             for(int k=0;k<i;k++){                 if(stack[k]==j){                     t=0;                     break;                 }             }             if(t){                 stack[i]=j;                 pai(stack,n,i+1);             }         }     } } int main(void){     int n;     scanf("%d",&n);     pai((int*)malloc(sizeof(int)*n),n,0);     return 0; }
  • 3楼网友:慢性怪人
  • 2021-03-20 22:54
字符数组,循环输出
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯