C语言的高手们都来啊 啊啊

验证卡布列克运算。任意的一个四位数,只要它们各个位上数字不全相同,就有这样的规律,其中三个步骤设计3个函数实现:
a)将组成这个四位数的四个数字由大到小排列,形成由这四个数字构成的最大四位数。
b) 将组成这个四位数的四个数字由小到大排列,形成由这四个数字构成的最小四位数。
c) 求两个数的差,得到一个新的四位数。
重复以上过程,最后得到的结果总是6174.
(写程序步骤,即其各个函数的用法,注:是一个健全的程序,用C++语言)
谢谢啦!
用C++语言~~~~~~~~

不是回答过你吗?
#include<iostream.h>
int big(int i); //求出最大数
int small(int i); //求出最小
int c(int i1,int i2); //求两个数的差
void sort(int a[],int n) //排序
{
int i,j;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if (a[i]<a[j]){int t=a[i];a[i]=a[j];a[j]=t;};
};
void main()
{
int i,t=0;
cin>>i;
while(i!=t)
{
t=i;
i=big(i)-small(i);
}
cout<<i<<endl;
}
int big(int i)
{
int a[4];
a[0]=i/1000;i=i-a[0]*1000;
a[1]=i/100;i=i-a[1]*100;
a[2]=i/10;i=i-a[2]*10;
a[3]=i;
sort(a,4);
return (a[0]*1000+a[1]*100+a[2]*10+a[3]);
}

int small(int i)
{
int a[4];
a[0]=i/1000;i=i-a[0]*1000;
a[1]=i/100;i=i-a[1]*100;
a[2]=i/10;i=i-a[2]*10;
a[3]=i;
sort(a,4);
return (a[0]+a[1]*10+a[2]*100+a[3]*1000);
}
int c(int i1,int i2)
{
return (i1-i2);
}
温馨提示:答案为网友推荐,仅供参考
相似回答