没学明白c语言求厉害的你们给我解一下题帮帮我吧

给定一个正整数n,求这个正整数的数位范围(即n中出现的数字范围)。

输出前n个正整数?

img


#include<stdio.h>
#include <math.h>

int ms(int n,int *t)
{
    while(n>9)
    {
        n=n/10;
        t[0]++;
    }
    return n;
}

int main()
{
    int n;
    scanf("%d",&n);
    int t[25];
    int j=0;
    int t2[1]= {0};
    int i;
    int tem2;
    while(n>9)
    {
        t2[0]=0;
        int tem=ms(n,t2);
        tem2=10;
        for(i = 1; i < t2[0]; i++)
        {
            tem2=tem2*10;
        }
        n=n-tem2*tem;
        t[j]=tem;
        j++;
    }
    t[j]=n;
    
    //找最大值和最小值
     
    int max=t[0],min=t[0];
    for(i=1;i<j+1;i++)
    {
        if(t[i]<min)
        {
            min=t[i];
        }
        if(t[i]>max)
        {
            max=t[i];
        }
    }
    printf("数位范围:%d~~%d",min,max);
    return 0; 
}