任意给出一个四位数,把它重新组成一个四位的最大数和一个最小数,算出两者间的差。
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 | #include <stdio.h> int f(int n) { int N[4], t, n_min, n_max, i,j; 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; } n_min=0; for(i=0; i<4; i++) n_min = n_min * 10 + N[i] ; n_max = 0; for(i=3; i>=0; i--) n_max = n_max * 10 + N[i]; return n_max-n_min; } int main(int argc, char *argv[]) { printf("%dn", f(3721)); return 0; } |