可以用排序的方法:
#include<stdio.h>
int jx(int *a);//降序排列 得最大值
int sx(int *a);//升序排列 得最小值
int main()
{
int a[4],i,max,min;
char c[5];
printf("输入4位数字:");
scanf("%s",c);
for(i=0;i<4;i++)
a[i]=c[i]-'0';
max=jx(a);
min=sx(a);
printf("四位数%s组成的最大数字%d与最小数字%d的差为:%d",c,max,min,max-min);
return 0;
}
int jx(int *a)//降序排列 得最大值
{
int i,j,aSave,num=0;
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{
if(a[i]<a[j])
{
aSave=a[i];
a[i]=a[j];
a[j]=aSave;
}
}
num=a[0]*1000+a[1]*100+a[2]*10+a[3];
return num;
}
int sx(int *a)//升序排列 得最小值
{
int i,j,aSave,num=0;
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{
if(a[i]>a[j])
{
aSave=a[i];
a[i]=a[j];
a[j]=aSave;
}
}
num=a[0]*1000+a[1]*100+a[2]*10+a[3];
return num;
}