2019/2/11 6084问题

题目描述
任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。

例如: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;
	
	
	
	
}
posted @ 2019-02-11 09:59  Locker伍六七  阅读(132)  评论(0编辑  收藏  举报