求助啊,关于一道删除数字的问题
											对给定的N位高精度正整数,去掉其中的k个数字后,使剩下的数字构成的整数最大。输出每一行表示每个高精度正整数去掉相应的k个数字后构成的新的最大正整数。
程序代码:#include<stdio.h>
#include<string.h>
int main()
{
    int l,i;
    scanf("%d",&l);
    while(l--)
    {
        int k,c[10],OK=0,q=0,w,f,j=0,t,p;
        char n[100];
        scanf("%s%d",n,&k);
        t=strlen(n);
        if(k>=t)
        {
            printf("0\n");
            continue;
        }
        for(i=0;i<10;i++)
            c[i]=0;
        for(i=0;i<t;i++)
        {
            if(n[i] == '0')
                c[0]++;
            if(n[i] == '1')
                c[1]++;
            if(n[i] == '2')
                c[2]++;
            if(n[i] == '3')
                c[3]++;
            if(n[i] == '4')
                c[4]++;
            if(n[i] == '5')
                c[5]++;
            if(n[i] == '6')
                c[6]++;
            if(n[i] == '7')
                c[7]++;
            if(n[i] == '8')
                c[8]++;
            if(n[i] == '9')
                c[9]++;
        }
        for(i=0;i<10;i++)
        {
            q=q+c[i];
            if(q>=k)
            {
                f=i;
                p=q-k;
                w=c[i]-p;
                break;
            }
        }
        for(i=0;i<t;i++)
        {
            if(((int)n[i]-48)>f)
                putchar(n[i]);
            if(((int)n[i]-48) == f)
            {
                      if(j < w)
                         j++;
                     else
                         putchar(n[i]);
            }
       
        }
        printf("\n");
    }
    return 0;
}我的代码:


											
	    

	