#include<stdio.h>
void main()
{ int i,k,m,n,t,x,a[10000];
char b[10000];
printf(" 请输入整数:");
scanf("%s",b); // 以字符串方式输入高精度整数
for(n=0,i=0;b[i]!='\0';i++)
{n++;a[i]=b[i]-48;}
printf(" 删除数字个数: ");scanf("%d",&k);
if(n<=k)
{ printf(" 整数中数字不够删!\n ");return;}
printf(" 以上%d位整数中删除%d个数字分别为: ",n,k);
t=0;m=0;x=0;
i=t+1;
while(x<k && i<=n) // 删除的数字后已无递增区间,脱离循环
{ if(t>=0 && a[t]>a[i]) // 出现递增,删除递增的首数字
{ printf("%d, ",a[t]);
a[t]=-1; // 删除的数字标记-1
while(t>=0 && a[t]==-1)
t--; // 从删除数字的前一位非-1数字开始查找递增区间
x=x+1; // x统计删除数字的个数
}
else t=i++;
}
printf("\n 删除后所得最小数: ");
for(i=0,x=0;x<n-k;i++) // 打印左边的n-k个非-1数字
if(a[i]!=-1)
{ printf("%d",a[i]);x++; }
printf("\n");
}
![]()