算法验证,乘积最大值

输入五个数字(0-9),把这五个数字组成一个三位数和一个二位数,要求计算组成的这两个数的乘积的最大值
想问问该算法正确吗

#include<stdio.h>
//乘积最大值
void sort(int t[],int n)
{
    int j=0;
    while(j<n)
    {
        if(t[j]<t[j-1]&&j!=0)
        {
            int tem=t[j];
            t[j]=t[j-1];
            t[j-1]=tem;
            j--;
        }
        else
        {
            j++;
        }
    }
}
int main()
{
    int j,k,h;
    int t[5];
    for(j=0;j<5;j++)
    {
        scanf("%d",&t[j]);
    }
    sort(t,5);
    
    int max1=t[4]*100+t[1]*10+t[0];
    int max2=t[3]*10+t[2];
    
    printf("%d  %d   ",max1,max2);
 
    printf("乘积最大值:%d\n",max1*max2);
    return 0;
}

img