删去K个字符,使字符串所表示的数最大

解法: 移除K个数,则从首字符向字符串尾部遍历K次,如果某个字符小于下一个字符的ASCII(数字字符串的大小和ASCII码一致),则将该字符移除(后续的字符依次前移),然后K值减1,退出此次循环,重新循环直到K为0;若字符串已经从前到后没有字符小于后一位,并且K不为0时,则从字符串末尾减去K个字符。

#include<string.h>
int main()
{
    char a[100000];
    int i,j,len,c,f=1;
    scanf("%s",a);
    scanf("%d",&c);
    len = strlen(a)-1;
    while (1)
    {
        if(f==1)
        {
        	f=0;
		}
		else break;
		if(c==0) break;
        else
        {
            for(i=0;i<len;i++)
            {
                if(a[i]<a[i+1])
                {
                    for(j=i;j<len+5;j++)
                    {
                    	f=1;
                        a[j]=a[j+1];
                    }
                    len--;
                    c--;
                    break;
                }
            }
        }
    }
    if(c!=0) for(i=0;i<strlen(a)-c;i++) printf("%c",a[i]);
    else puts(a);
    return 0;