按从小到大的顺序输入四个互不相同的一位数字,能组成多少互不相同且无重复数字的四位数?输出这些四位数
输入格式:
输入就一行,包含4个整数,他们之间均以一个空格分隔。
输出格式:
按照从小到大的顺序输出满足条件的4位数。输出每个数之后需要回车换行。
#include<stdio.h>
int main()
{
int a[4],i=0,j,n=0,b[500];
for(i=0;i<4;i++)
scanf("%d",&a[i]);
int f1,f2,f3,f4;
for(f1=0;f1<4;f1++)
{
for(f2=0;f2<4;f2++)
{
for(f3=0;f3<4;f3++)
{
f4=a[0]+a[1]+a[2]+a[3]-f1-f2-f3;
if(f4>0&&f1!=f2&&f1!=f3&&f1!=f4&&f2!=f3&&f2!=f4&&f3!=f4)
{
b[n++]=a[f1]*1000+a[f2]*100+a[f3]*10+a[f4];
}
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(b[j]>b[j+1])
{
int k=b[j];
b[j]=b[j+1];
b[j+1]=k;
}
}
}
for(i=0;i<n;i++)
{
if(b[i]>999&&b[i]<10000)
printf("%d\n",b[i]);
}
return 0;
}
