本地能过第一测试点和样例,全WA,求指教
查看原帖
本地能过第一测试点和样例,全WA,求指教
1160606
OKM_IS楼主2023/11/1 20:20
#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
#define maxn 505 
    struct bigint{
        int a[maxn]={0},len=0;

        bigint(char x[],int len1):len(len1){
            for(int i=0;i<=len-1;i++){
            a[i]=x[len-1-i]-'0';
            }
        };

        bigint(int len1){len=len1;};

        bigint(){};

        int &operator[](int i){
            return a[i];
        }

        void out(){
            for(int i=len-1;i>=0;i--){
            cout<<a[i];
            }
        }

        void carry(){
            for(int i=0;i<=len;i++)
                if(a[i]>=10){
                a[i]-=10;
                a[i+1]++;
                }
            if(a[len]>0)len++;
        }
    };
bigint operator+(bigint e,bigint f){
    bigint c(max(e.len,f.len));

    for(int i=0;i<max(e.len,f.len);i++){
        c[i]=e[i]+f[i];
    }
        c.carry();
    return c;
}
int main(){
    
    char e[maxn],f[maxn];
    int lene=0,lenf=0;
    for(int i=0;;i++){
        scanf("%c",&e[i]);
        if(e[i]=='\n'){break;}
        lene++;
    }
       for(int i=0;;i++){
        scanf("%c",&f[i]);
        if(f[i]=='\n'||f[i]==EOF){break;}
        lenf++;
    } 
    bigint c1(e,lene);
    bigint c2(f,lenf);
    bigint c3;
    c3=c1+c2;
    c3.out();
    return 0;
}

请问为什么这段代码全WA呢?第一个测试点本地运行 能过,样例也可以过,是构造函数和运算符重载出了什么问题吗?

2023/11/1 20:20
加载中...