使用c语言为4个数字abcd进行排序

使用c语言为4个数字abcd进行排序例如输入1,2,3,4。四个数字
则打印出
1234,1234,1324........4321所有的24种排法

#include <stdio.h>

int main()
{
    char a[4]={1,2,3,4};
    char b[4];
    int i,j,m,n;
    for(i=0;i<4;i++)
    {
b[0] = a[i];
for(j=0;j<4;j++)
{
            if(j!=i)
    {
        b[1] = a[j];
for(m=0;m<4;m++)
{
    if(m!=j && m!=i)
     {
          b[2] = a[m];
  for(n=0;n<4;n++)
    if(n!=j && n!=i && n!=m)
    {
b[3] = a[n];
printf("%d%d%d%d\n",b[0],b[1],b[2],b[3]);
    }
    }
}
    }
}
    }
return 0;
}

数据自己输入数组当中这个没写,这个是最古老的方式但是也是最容易理解的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-28
#include<stdio.h>

char data[4];

int main(int arg)
{
int i,j,k,l,num=0;

scanf("%d%d%d%d",&data[0],&data[1],&data[2],&data[3]);


for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(i==j)
continue;
for(k=0;k<4;k++)
{
if(i==j || j==k || i==k)
continue;
for(l=0;l<4;l++)
{
if(i==j || j==k || i==k || i==l || k==l ||j==l)
continue;
num++;
printf("%d%d%d%d\n",data[i],data[j],data[k],data[l]);
}
}
}
}

printf("count=%d\n",num);
}

不解释代码0.0. 有兴趣可以加我qq研究:2331324114

第2个回答  2017-09-28
# include<stdio.h>

int main(void)
{
    int numset[5] = {0,0,0,0,0};
    
    int i,j,k,l;
    for(i=1;i<=4;++i)
    {
        numset[i]=1;
        for(j=1;j<=4;++j)
        {    
            if(numset[j]==0) 
               {
                numset[j] = 1;
            }
               else
                  continue;
            for(k=1;k<=4;++k)
            {
                if(numset[k]==0) 
                {
                    numset[k]=1;
                }
                else
                    continue;  
                  for(l=1;l<=4;++l)
                  {
                      if(numset[l]==0) 
                       {
                           printf("%d",i);
                           printf("%d",j);
                           printf("%d",k);
                           printf("%d\n",l);
                           numset[l]=1;
                    }
                       else
                        continue;  
                    
                    numset[l] = 0;    
                }
                 numset[k] = 0;
            }
               numset[j] = 0;
      } 
      numset[i] = 0;
    }
    return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网