20求调

P7911 [CSP-J 2021] 网络连接

写法有问题,在判断前导零的时候万一出现了01这种情况呢? 就像``` Server 192.168.01.1:100 ``` ``` 你的程序输出OK
by yhliuhao @ 2023-10-18 16:52:16


并不是所有情况前导零都是两个,能过两个点很不错了,推荐学习一下sscanf和sprintf,简直是为它量身定做的
by yhliuhao @ 2023-10-18 16:54:39


@[lisuhengyu0617](/user/668868)
by yhliuhao @ 2023-10-18 16:55:17


```cpp #include<bits/stdc++.h> using namespace std; int server[65540]; string s[1005]; int main(){ freopen("network.in","r",stdin); freopen("network.out","w",stdout); int n,k=0; cin>>n; memset(server,sizeof(server),0); while(n--){ string w; k++; cin>>w>>s[k]; bool b=true; int x=0,y=0,num=0; for(int i=0;i<s[k].size();i++){ if((s[k][i]=='.'||s[k][i]==':')&&s[k][i+1]=='0'&&s[k][i+2]>='0'&&s[k][i+1]<='9'){ b=false; //cout<<"qiandao"<<endl; break; } if(s[k][i]=='.'){ x++; //cout<<endl; //cout<<"fuhao"<<' '<<num<<endl; if(num>255){ //cout<<s[i]<<' '<<num<<endl; b=false; break; } if(x>3){ b=false; break; } num=0; } else if(s[k][i]==':'){ y++; //cout<<endl; //cout<<"fuhao"<<' '<<num<<endl; if(num>255){ //cout<<s[i]<<' '<<num<<endl; b=false; break; } if(y>1){ b=false; break; } num=0; } else { //cout<<"jiahe"<<endl; num=num*10+s[k][i]-'0'; //cout<<num<<' '; } } //cout<<endl<<endl; if(num>65535){ b=false; } if(b==false){ cout<<"ERR"<<endl; continue; } else{ if(w=="Server"){ if(server[num]==0){ server[num]=k; cout<<"OK"<<endl; continue; } else{ cout<<"FAIL"<<endl; continue; } } else{ if(server[num]!=0){ //cout<<num<<' '; if(s[k]==s[server[num]]){ cout<<server[num]<<endl; } else{ cout<<"FAIL"<<endl; } continue; } else{ cout<<"FAIL"<<endl; continue; } } } } } ```
by lisuhengyu0617 @ 2023-10-18 16:58:45


@[lisuhengyu0617](/user/668868) 你这。。。 你试试 $Server$ $001.1.1.1:909$
by yhliuhao @ 2023-10-18 17:03:53


情况太多了,很难一一判断,还是换个写法叭
by yhliuhao @ 2023-10-18 17:05:00


没判断有没有冒号 我大致知道了
by lisuhengyu0617 @ 2023-10-18 17:07:21


??? 什么意思
by yhliuhao @ 2023-10-18 17:13:40


|