卡布列克运算希望帮助,
调试了半天,都没调试出来,希望能帮助下!谢谢
#include<stdio.h>
int zuhe(int a[4],int n)
{
int i,j,t;
for(i=0;i<4;i++)
{
a[i]=n%10;
n=n/10;
}
/*for(i=0;i<3;i++)//冒泡
for(j=i+1;j<4;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}*/
for(i=0;i<3;i++)
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
return 1;
}
int getmin(int n)
{
int a[4];
int s=0;
int i,j,t;
zuhe(a,n);
for(i=3;i>=0;i--)
{
t=1;
for(j=0;j<i;j++)
t*=10;
s+=a[i]*t;
}
return s;
}
int getmax(int n)
{
int a[4];
int s=0;
int i,j,t;
zuhe(a,n);
for(i=0;j<4;i++)
{
t=1;//用来组个成4个数的技巧
for(j=0;j<3-i;j++)
t*=10;
s+=a[i]*t;
}
return s;
}
void main()
{
int n=1008;
//printf("请输入无重复的4位数字:");
//scanf("%d",&n);
while(n!=6174)
{
printf("%4d-%4d=%4d\n",getmax(n),getmin(n),getmax(n)-getmin(n));
n=getmax(n)-getmin(n);
}
}