删数问题

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
using namespace std;
int main() {
	string s;
	int a[260]= {0},i,j,n;
	cin>>s;
	int k;
	scanf("%d",&k);
	int len=s.length();
	for(i=0; i<len; i++) {
		a[i]=s[i]-'0';//将字符转换为整型数
	}
	for(i=0; i<k; i++) {
		for(j=0; j<len; j++) {
			if(a[j]>a[j+1]) {//高位大于低位删掉,假如都已经排好,但还要删数,最后一位会与零比较删掉
				for(n=j; n<len; n++) {
					a[n]=a[n+1];
				}
				len--;
				break;
			}
		}
	}
	int l=0;//l表示删除前导零后数组开始的脚标
	i=0;
	while(a[i]==0 && l<len-1) {//删除前导0,len-1假如输入为10 1 结果不为空
		l++;
		i++;
	}
	for(i=l; i<len; i++)
		printf("%d",a[i]);
	return 0;
}

 

posted @ 2022-04-19 00:26  半喜  阅读(33)  评论(0)    收藏  举报