为啥它一直输出ERR?
查看原帖
为啥它一直输出ERR?
865793
better_Z楼主2023/8/15 17:14
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cstdlib>
using namespace std;
map<string,int>ds;
string a,b,c,d,e;
int n,i=1;
string f1,f2,f3,f4;
int tp(){
    if(f1=="."&&f2=="."&&f3=="."&&f4==":")return 0;
    return 1;
}
int digit(){
    int num1,num2,num3,num4,num5;
    num1=stoi(a);num2=stoi(b);num3=stoi(c);num4=stoi(d);num5=stoi(e);
    if((a.size()==1&&a[0]=='0')||num1>255||num1<0)return 1;
    if((b.size()==1&&b[0]=='0')||num2>255||num2<0)return 1;
    if((c.size()==1&&c[0]=='0')||num3>255||num3<0)return 1;
    if((d.size()==1&&d[0]=='0')||num4>255||num4<0)return 1;
    if((e.size()==1&&e[0]=='0')||num5>65535||num5<0)return 1;
    return 0;
}
int main(){
    cin>>n;
    while(n--){
        string s;
        cin>>s;
        if(s=="Server"){
            cin>>a>>f1>>b>>f2>>c>>f3>>d>>f4>>e;
            if(tp()){cout<<"ERR"<<endl;continue;}
            if(digit()){cout<<"ERR"<<endl;continue;}
            string ssum=a+f1+b+f2+c+f3+d+f4+e;
            if(ds[ssum]==0){
                ds[ssum]=i++;
                cout<<"OK"<<endl;
            }
            else cout<<"FAIL"<<endl;
        }
        else {
            cin>>a>>f1>>b>>f2>>c>>f3>>d>>f4>>e;
            if(tp()){cout<<"ERR"<<endl;continue;}
            if(digit()){cout<<"ERR"<<endl;continue;}
            string ssum=a+f1+b+f2+c+f3+d+f4+e;
            if(ds[ssum]==0)cout<<"FAIL"<<endl;
            else cout<<ds[ssum]<<endl;
        }
    }
    return 0;
}
2023/8/15 17:14
加载中...