#include<stdio.h> int div(int array[4], int b) { int c = 0, i = 3;//细节 while (b > 0) { c = b % 10; array[i] = c; b = b / 10; i--; } return 0; } void MAXmin(int array[4])//你可以学一下冒泡排序 { int k=0; if (array[0] < array[1]) { k = array[1]; array[1] = array[0]; array[0] = k; } if (array[0] < array[2]) { k = array[2]; array[2] = array[0]; array[0] = k; } if (array[0] < array[3]) { k = array[3]; array[3] = array[0]; array[0] = k; } if (array[1] < array[2]) { k = array[2]; array[2] = array[1]; array[1] = k; } if (array[1] < array[3]) { k = array[3]; array[3] = array[1]; array[1] = k; } if (array[2] < array[3]) { k = array[3]; array[3] = array[2]; array[2] = k; } } bool judge(int array[4]) { if (array[0] == array[3] || array[0] == array[2] || array[0] == array[1] || array[1] == array[2] || array[1] == array[3] || array[2] == array[3]) return true; else return false; } int Sum(int array[4]) { int sum; sum = 1000 * array[0] + 100 * array[1] + 10 * array[2] + 1 * array[3]; return sum; } void minMAX(int array[4]) { int k1,k2; k1 = array[0]; array[0] = array[3]; array[3] = k1; k2 = array[1]; array[1] = array[2]; array[2] = k2; } int main() { int a,array[9],result,b=0,c=0; p: printf("请输入一个各位数字不相同的4位数:\n"); scanf_s("%d", &a); div(array, a); if (a > 9999 || a < 1000) { printf("输的不是四位数。\n"); goto p; } else if (judge(array)) { printf("数字相同。\n"); goto p; } while ((b-c) != 6174) { MAXmin(array); b=Sum(array); minMAX(array); c=Sum(array); printf("~>%d-%d=%d\n", b, c, b - c); div(array, b - c); } }
浙公网安备 33010602011771号