#include<stdio.h>
#define N 4
void sort(int *arr,int n)//冒泡实现
{
int temp;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
void main()
{
int Number;
int t=0;
int a[N]={0};
int ret=-1;
int Nret=0,Pret=0;
printf("输入一个四位数:");
scanf("%d",&Number);
while(Number)
{
for(int i=0;i<N;i++)
{
t=Number%10;
a[i]=t;
Number/=10;
}
sort(a,N);//调用冒泡排序
for(i=0;i<N;i++)
{
Nret=Nret*10+a[i];//生成了最小值
}
for(i=N-1;i>=0;i--)
{
Pret=Pret*10+a[i];//生成最大值
}
if(ret!=Pret-Nret)
printf("%d-->",Pret-Nret);
else
{
printf("%d\n",Pret-Nret);
break;
}
ret=Number=Pret-Nret;//将差值保存在ret中,并把差值赋给Number
Nret=Pret=0; //这步很重要,一定要将Nret和Pret的值赋为零
}
}原文地址:http://blog.csdn.net/zhou753099943/article/details/46272943