c++ - 在 C++ 中使用字符串时在线编译器出现运行时错误
问题描述
我正在尝试在在线编译器上运行此代码,它在本地完美运行时显示运行时错误。未使用的代码部分已被注释掉。
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
// your code goes here
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int t;
cin>>t;
while(t--)
{
string s;
cin>>s;
int x,y;
cin>>x>>y;
string ans;
int noOfApple=0,noOfBanana=0;
for(int i=0;i<s.size();i++)
{
if(s[i]=='a')
{
noOfApple++;
}
else
{
noOfBanana++;
}
}
int noOfABlock=ceil(noOfApple/x);
//int noOfBBlock=ceil(noOfBanana/y);
int length=floor(noOfBanana/(noOfABlock-1));
int remainderB=noOfBanana%(noOfABlock-1);
int counter=0;
//condition for '*'
if(noOfBanana<(noOfABlock-1))
{
int q=noOfBanana;
for(int i=0;i<(noOfABlock-1);i++)
{
for(int j=0;j<x;j++)
{
ans[counter++]='a';
}
if(q>0)
{
ans[counter++]='b';
q--;
}
else
{
ans[counter++]='*';
}
}
for(int i=0;i<x;i++)
{
ans[counter++]='a';
}
}
else{
for(int i =0;i<(noOfABlock-1);i++)
{
for(int j=0;j<x;j++)
{
ans[counter++]='a';
}
for(int j=0;j<length;j++)
{
ans[counter++]='b';
}
while(remainderB>0)
{
remainderB--;
ans[counter++]='b';
}
}
for(int i=0;i<x;i++)
{
ans[counter++]='a';
}
}
cout<<ans<<endl;
}
return 0;
}
该程序的输入:-
6
ab
1 1
aab
1 1
aabb
1 2
aaaaab
2 1
aaaa
1 3
aaaaa
2 2
当使用数组时,我们必须初始化数组的大小,因为它们是静态的,但由于字符串是动态的,我们不需要使用大小进行初始化。
解决方案
推荐阅读
- javascript - 移动设备上的 Google Oauth 需要 client_secret 但生成的客户端不提供
- rholang - Rholang 与 AND 和 RevAddress 匹配
- r - LMEST 解码问题
- flutter - Flutter just_audio 包,无法通过 Note 9 扬声器获得声音(适用于其他设备)
- jenkins - 在 Jenkins 中失败一个阶段但保持构建结果为成功
- python - 表模型更新时 Qtableview 不更新
- kubernetes-helm - Helm 部署
- jmeter - Jmeter 5.4.1 500 响应失败 - 内部服务器错误 - 尝试登录时
- python - 在字典python中按长度分组值
- python - 为什么我在列表理解的 if 语句中收到“TypeError”?