#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