问题标题: 酷町堂:2786怎么做?

0
0
已解决
王欣怡
王欣怡
新手光能
新手光能

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    int m,n;
    cin>>n;
    for(int k=1;k<=n;k++)
    {
        cin>>s>>m;
        for(int i=1;i<=m;i++)
        {
            for(int j=0;j<s.size();j++)
            {
                if(s[j]>s[j+1] || j==s.size()-1)
                {
                    s.erase(j,1);
                    break;
                }
            }
        }
        if(s[0]=='0')s.erase(1,1);
        cout<<s<<endl;
    }
    return 0;
}

 

我的代码哪里有问题?求大佬指点


1
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者
在cin>>s>>m;
后面加 l=s.size();

定义l;

for(int i=1;i<=m;i++)
改成
while(m--)

for(int j=0;j<s.size();j++)
改成
for(int j=0;j<l;j++)

在break前面加一条语句 l--;

后面你基本都写错了
        j等于0;
        当(s[j]=='0'&&j<l-1)
        {
            j++;
        }
        循环(int c=j;c<l;c++)
        {
            输出<<s[c];
        }
        输出<<endl;

望采纳谢谢

@王欣怡 

 

赵逸凡在2018-08-14 11:31:13追加了内容

0
我要回答