我正在尝试从数组元素中形成最大数量。下面给出的我的实现在某些情况下工作正常,而对于其他一些情况,它给出错误 “Abort signal from abort(3) (SIGABRT)” 。为什么?帮帮我!
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
while((t--)>0){
int n;
cin>>n;
int a[n];
string s="";
for(int i=0;i<n;i++){
cin>>a[i];
if(i==0){s+=to_string(a[i]); continue;}
string s1 = s+to_string(a[i]); //sX
string s2 = to_string(a[i])+s; //Xs
if(stoi(s1)>=stoi(s2))s=s1;
else s = s2;
}
cout<<s<<endl;
}
return 0;
}
对于以下情况,我的代码给出了错误
4 //数组大小
54 546 548 60 //数组元素
原文由 Mahesh Nagarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是由于
stoi
功能。这不适用于非常大的数字。对于
string
到int
转换,请尝试以下方法。手动将
string
转换为int
的算法:变量
x
将存储讨论字符串的整数值。