使用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;
}
数据自己输入数组当中这个没写,这个是最古老的方式但是也是最容易理解的
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);
}
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;
}
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;
}