任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。
例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | void f(int n) { int N[4]; int i, j, t, n_min=0, n_max=0; for(i=0; i<4; i++) { N[3-i] = n % 10; n = n / 10; } for(i=0; i<3; i++) for(j=0; j<3-i; j++) if(N[j]>N[j+1]) { t = N[j+1]; N[j+1] = N[j]; N[j] = t; } for(i=0; i<4; i++) n_min = n_min * 10 + N[i] ; for(i=3; i>=0; i--) n_max = n_max * 10 + N[i]; printf("%d-%d=%d",n_max,n_min,n_max-n_min); } #include <stdio.h> int main(int argc, char *argv[]) { int n; scanf("%d", &n); printf("%d=",n); f(n); return 0; } |