求大佬帮忙,为什么是RE啊啊啊!数组也没有越界啊!

P1957 口算练习题

徐大大 @ 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_

感谢大佬,终于过了,万分感谢,抱拳


|