[刷题] PTA 7-44 黑洞数

我的程序,一个用例通不过

 1 #include<stdio.h>
 2 void sort(int *a,int n);
 3 
 4 int main() {
 5     int num,a,b,c,count=1;
 6     scanf("%d",&num);
 7     while(num!=495&&num!=0) {
 8         a = num/100;
 9         b = num%100/10;
10         c = num%100%10;
11         int p[] = {a,b,c};
12         sort(p,3);
13         int g1,g2;
14         g1 = 100*p[0]+10*p[1]+p[2];
15         g2 = 100*p[2]+10*p[1]+p[0];
16         num = g1-g2;
17         printf("%d: %d - %d = %d
",count,g1,g2,num);
18         count++;
19     }
20 }
21 
22 void sort(int *a,int n) {
23     int i, j, t;
24     for (i = 1; i < n; i++) {
25         t = a[i];
26         j = i - 1;
27         while (j >= 0 && t > a[j]) {
28             a[j+1] = a[j];
29             j--;
30         }
31         a[j+1] = t;
32     }
33 }

网友的程序,更加简洁:

 1 #include <stdio.h>
 2 int main(){
 3 int n,max,min,f=0,a,b,c,t;
 4 scanf("%d",&n);
 5 while(n!=495||f==0){
 6 a=n/100;b=n/10%10;c=n%10;
 7 if (a<b){
 8 t = a;
 9 a = b;
10 b = t;
11 }
12 if (a<c){
13 t = a;
14 a = c;
15 c = t;
16 }
17 if (b<c){
18 t = b;
19 b = c;
20 c = t;
21 }
22 max = a*100+b*10+c;
23 min = c*100+b*10+a;
24 n = max - min;
25 f++;
26 printf("%d: %d - %d = %d
",f,max,min,n);
27 }
28 
29 return 0;
30 }
原文地址:https://www.cnblogs.com/cxc1357/p/10754032.html