题目描述
任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。
例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237
样例输入
3721
样例输出
3721=7321-1237=6084
#include<stdio.h>
int main()
{
int n,a1,b1,c,d,a[4],b[4],m,k;
scanf("%d",&n);
a1=n/1000;
b1=(n-1000*a1)/100;
d=n%10;
c=(n%100-d)/10;
a[0]=a1;
a[1]=b1;
a[2]=c;
a[3]=d;
b[0]=a1;
b[1]=b1;
b[2]=c;
b[3]=d;
int i,j,temp,min;
for(i=0;i<4-1;i++)
{
min=i;
for(j=i+1;j<4;j++)
while(a[j]<a[min])
min=j;
if(min!=i)
{
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
m=a[0]+a[1]*10+a[2]*100+a[3]*1000;
k=a[3]+a[2]*10+a[1]*100+a[0]*1000;
printf("%d=%d-%d=%d",n,m,k,m-k);
return 0;
}