复制代码
#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);
    }
}
复制代码