问题标题: 酷町堂:4360 90分

0
0
已解决
李明昕
李明昕
资深守护
资深守护

如题

90分代码:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
    string a,b;
    getline(cin,a);
    getline(cin,b);
    int c[a.size()],d[a.size()],pos=0,cnt=0;
    for(int i=0;i<a.size();i++){
        if(a[i]>='1'&&a[i]<='4'){
            c[pos]=a[i];
            pos++;
        }
    }
    pos=0;
    for(int i=0;i<b.size();i++){
        if(b[i]>='1'&&b[i]<='4'){
            d[pos]=b[i];
            pos++;
        }
    }
    for(int i=0;i<pos;i++){
        if(c[i]==d[i]) cnt++;
    }
    cout<<cnt;
    return 0;
}


0
已采纳
王文博
王文博
缔造者之神
缔造者之神

数组大小错了,是c[10001],d[10001]

望采纳!

0
0
0
李牧晓
李牧晓
中级天翼
中级天翼

数组开小了,换一个大一点的数字试试?

0
0
0
汪宇航
汪宇航
新手启示者
新手启示者

因为你忽略了b长度大的可能,数组:

c[max(a.size(),b.size()+1)],d[max(a.size(),b.size()+1)];

我要回答