第27天打卡
问题:

算法设计:
首先要利用两个函数求出输入三位数能排列的最大数和最小数然后在求出其差值判断是否相等,若不相等则将继续循环上述步骤直至成立为止
源代码:
#include<stdio.h>
int maxf(int,int,int);
int minf(int,int,int);
int main()
{
int i,k;
int max,min,j,h,ge,shi,bai;
printf("请输入一个三位数: ");
scanf("%d",&i);
bai=i/100;
shi=i%100/10;
ge=i%10;
max=maxf(bai,shi,ge);
min=minf(bai,shi,ge);
j=max-min;
for(k=0;;k++)
{
h=j;
bai=i/100;
shi=i%100/10;
ge=i%10;
max=maxf(bai,shi,ge);
min=minf(bai,shi,ge);
j=max-min;
if(j==h)
{
printf("%d\n",j);
break;
}
}
}
int maxf(int a,int b,int c)
{
int t;
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=b;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
return(a*100+b*10+c);
}
int minf(int a,int b,int c)
{
int t;
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=b;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
return(c*100+b*10+a);
}
浙公网安备 33010602011771号