C语言while语句调试问题

#题目如下图,我想知道为何我在while处无法调试,现在不知道这个程序的正确与否,请各位答主指点迷津

img

#include
#include
#include
#include

int maxn(int n)
{
    int ge,ten,hund,thoud;
    thoud=n/1000;
    hund=(n%1000)/100;
    ten=(n%100)/10;
    ge=n%10;
    int a[4];
    a[0]=ge;
    a[1]=ten;
    a[2]=hund;
    a[3]=thoud;
    int i,j,t;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3-i;j++)
        {
            if(a[j]<=a[j+1])
            {
                t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
                
            }
        }
    }
    int maxnn;
    maxnn=a[0]*1000+a[1]*100+a[2]*10+a[3];
    return maxnn;
    
}

int minn(int n)
{
    int ge,ten,hund,thoud;
    thoud=n/1000;
    hund=(n%1000)/100;
    ten=(n%100)/10;
    ge=n%10;
    int a[4];
    a[0]=ge;
    a[1]=ten;
    a[2]=hund;
    a[3]=thoud;
    int i,j,t;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3-i;j++)
        {
            if(a[j]>=a[j+1])
            {
                t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
                
            }
        }
    }
    int minnn;
    minnn=a[0]*1000+a[1]*100+a[2]*10+a[3];
    return minnn;
    
}

int main()
{
    int n,min,max,t;
    scanf("%d",&n);
    max=maxn(n);
    min=minn(n);
    t=max-min;
    while((maxn(maxn(t)-minn(t))!=max)||(minn(maxn(t)-minn(t))!=min));
    {    
        t=max-min;
        max=maxn(t);
        min=minn(t);
        printf("%d,%d,%d",t,max,min);
    }
    
    printf("\n1%d,%d,%d",max-min,max,min);
    
    
}

while语句最后的分号删掉啊!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^