【发布时间】:2022-01-04 12:20:08
【问题描述】:
最近我编写了一个程序,从字符串中选择 k 个数字,按从左到右的顺序打印出具有 k 个字符的数字和最小的数字由字符串本身制成 例如 : 输入 : 3 89678982 输出:672 然后我的代码根本没有打印! 代码:
#include<bits/stdc++.h>
using namespace std;
int k,j=0,i;
string s;
int main() {
cin>>k>>s;
for(int i=0;i<s.size();i++) s[i]-=48;
int the2=0;
int Min=s[0];
while(j<0) {
for(i=the2;i<s.size();i++) {
if(Min>s[i])
{
Min=s[i];
break;
}
}
the2=i;
Min=s[i+1];
cout<<Min;
j++;
}
}
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
当您尝试调试此代码时,您的调试器会说什么?
-
您从所有内容中减去了“0”(48),现在正在打印控制(不可见)字符。尝试 std::cout
-
Peoijn Kramer Min 是 int 而 s[i] 是 char。所以如果 s[i]='7' (在开始时)Min 将是 7 这不是最好的做法,但有效。
标签: c++ string algorithm iterator min