求一fortran或C语言程序,求6个元素的所有6个元素的组合.如ABCDEF,组合成6个元素的组合:AABBBB、AABBCC、ABCCDD.组合出来的每个字符组都是六个元素,但里面可以有1~6种不同的元素.

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/19 20:28:30
求一fortran或C语言程序,求6个元素的所有6个元素的组合.如ABCDEF,组合成6个元素的组合:AABBBB、AABBCC、ABCCDD.组合出来的每个字符组都是六个元素,但里面可以有1~6种不同的元素.
xWoOF*Q&P&1 th:ߝəx)ҦV%ZR71:M!4_fqB^+4&N|=<{7/t~y>tA |Q=;:<G[߾><=t{0ioU>-ot;0[ɤZM&T['PGdݟ_֛7G BQݟ;O]y3uvdS7X?ھ<\_'taDX\^LV6)/ βѝ}ѿL{vӝeseb|;w:xIfA}|74JAM;773|KNԁhq.'$w hx!'{× R FDd$MHt$F. BTB4",LXdY!6i{B73+5ļRB$x9A2!ymO+b9) h7L7E5\L//k2ZE[%6 GjFiib2:7HbVXp4Ф'6H!s^&99DȲL(Zbl>pVfF\Kry뺪7H8.72gk+\Gahg*֢@IZ#je1^ƍ5#!nԦ%) lų@Vl(W!$ TCE`+#AǦPmUV Q0 Ȳ) E0]CcaQ* )hVFd$ 鲪E\3ɚd@[RPCR@C9pYW$c !e؆Nc@@P\,`MנD5MWBbT4eّB"TkgoSWy绽m3qW[g<[/z[q=~Jb#/F

求一fortran或C语言程序,求6个元素的所有6个元素的组合.如ABCDEF,组合成6个元素的组合:AABBBB、AABBCC、ABCCDD.组合出来的每个字符组都是六个元素,但里面可以有1~6种不同的元素.
求一fortran或C语言程序,求6个元素的所有6个元素的组合.
如ABCDEF,组合成6个元素的组合:AABBBB、AABBCC、ABCCDD.
组合出来的每个字符组都是六个元素,但里面可以有1~6种不同的元素.

求一fortran或C语言程序,求6个元素的所有6个元素的组合.如ABCDEF,组合成6个元素的组合:AABBBB、AABBCC、ABCCDD.组合出来的每个字符组都是六个元素,但里面可以有1~6种不同的元素.
#include<stdio.h>
void swap(char a[],int i,int j)
{
    char t=a[i];
    a[i]=a[j];
    a[j]=t;
}
int FirstL(char a[],int n)
{
    int j;
    for(j=n-1;j>0;j--)
    {
        if(a[j-1]<a[j])
            return j-1;
    }
    return j;
}
int FirstG(char a[],int j,int n)
{
    int i;
    for(i=n-1;i>j;i--)
    {
        if(a[j]<a[i])
            return i;
    }
    return j;
}
void reversal(char a[],int j,int n)
{
    int i,t;
    for(i=j+1,t=n-1;i<t;i++,t--)
    {
        swap(a,i,t);
    }
}
int main(void)
{
    int n;
    char a[100];
    int i,j,k,t;
    scanf("%d",&n);
    scanf("%s",a);
    for(i=0,t=1;i<n;i++)
    {
        t*=(i+1);
    }
    while(t--)
    {
        for(i=0;i<n;i++)
        {
            if(i==n-1)
                printf("%c\n",a[i]);
            else
                printf("%c",a[i]);
        }
        if(t==0) break;
        j=FirstL(a,n);
        k=FirstG(a,j,n);
        swap(a,j,k);
        reversal(a,j,n);
    }
}

输出结果很多,只能截取部分,望采纳~