徐大大 @ 2021-02-17 22:49:31
#include<bits/stdc++.h>
using namespace std;
int A[70];
int B[70][10];
int a,b,c,d,e,f,i;
string s1,s6,s7;
int main()
{
cin>>i;
for(a=1;a<=i;a++)
{
cin>>s1;
if(s1[0]=='a')
{
cin>>B[a][1]>>B[a][2];
A[a]=B[a][1]+B[a][2];
b=1;
s6[a]='+'; continue;
}
if(s1[0]=='b')
{
cin>>B[a][1]>>B[a][2];
A[a]=B[a][1]-B[a][2];
b=2;
s6[a]='-'; continue;
}
if(s1[0]=='c')
{
cin>>B[a][1]>>B[a][2];
A[a]=B[a][1]*B[a][2];
b=3;
s6[a]='*'; continue;
}
if(s1[0]!='a'&&s1[0]!='b'&&s1[0]!='c')
{
B[a][1]=atoi(s1.c_str());
if(b==1)
{
cin>>B[a][2];
A[a]=B[a][1]+B[a][2];
b=1;
s6[a]='+'; continue;
}
if(b==2)
{
cin>>B[a][2];
A[a]=B[a][1]-B[a][2];
b=2;
s6[a]='-'; continue;
}
if(b==3)
{
cin>>B[a][2];
A[a]=B[a][1]*B[a][2];
b=3;
s6[a]='*'; continue;
}}
}
for(a=1;a<=i;a++)
{
s7=to_string(B[a][1])+s6[a]+to_string(B[a][2])+'='+to_string(A[a]);
b=s7.size();
cout<<s7<<endl<<b<<endl;
}
return 0;
}```
by ud2_ @ 2021-02-17 22:58:54
@徐大大
没看出数组有没有越界,但 string
越界了。
by 徐大大 @ 2021-02-17 23:37:37
@sjx233_ 感谢大佬
刚学不太懂什么是string越界,刚百度也没查清,大佬能否指点下我这个代码哪里是string越界,感谢感谢
by ud2_ @ 2021-02-17 23:41:28
@徐大大
s6[a]='+';
但 s6
默认为空。在末尾加字符要写 s6.push_back('+')
。
下标从 0 开始。
by 徐大大 @ 2021-02-18 00:11:42
@sjx233_
感谢大佬,终于过了,万分感谢,抱拳