为啥输出全是FAIL?!
查看原帖
为啥输出全是FAIL?!
577422
skyark1214楼主2022/1/1 15:59
#include<bits/stdc++.h>
using namespace std;
struct Computers {
	char type[20];
	int a;
	char aa;
	int b;
	char bb;
	int c;
	char cc;
	int d;
	char dd;
	int e;
	int status;
};
Computers f[1001];
int main() {
	int g;
	bool h=false;
	bool j=false;
	bool k=false;
	bool l=false;
	bool m=false;
	bool n=false;
	cin>>g;
	for(int i=1; i<=g; ++i) {
		scanf("%s ",f[i].type);
		scanf("%d%c%d%c%d%c%d%c%d",&f[i].a,&f[i].aa,&f[i].b,&f[i].bb,&f[i].c,&f[i].cc,&f[i].d,&f[i].dd,&f[i].e);
	}
	for(int i=1; i<=g; ++i) {
		h=false;
		j=false;
		k=false;
		l=false;
		m=false;
		n=false;
		if(!(((f[i].aa=='.')&&(f[i].bb=='.'))&&((f[i].cc='.')&&(f[i].dd=':')))) {
			f[i].status=-1;
			continue;
		}
		if((f[i].a>=0)&&(f[i].a<=255)) {
			h=true;
		}
		if((f[i].b>=0)&&(f[i].b<=255)) {
			j=true;
		}
		if((f[i].c>=0)&&(f[i].c<=255)) {
			k=true;
		}
		if((f[i].d>=0)&&(f[i].d<=255)) {
			l=true;
		}
		if((f[i].e>=0)&&(f[i].e<=65535)) {
			m=true;
		}
		if(!((h&&j))&&((m)&(k&&l))) {
			f[i].status=-1;
			continue;
		}
		if(f[i].type=="Server") {
			for(int q=1; q<i; ++q) {
				if((((f[q].type=="Server")&&((f[i].a==f[q].a)&&(f[i].b==f[q].b)))&&((f[i].c==f[q].c)&&(f[i].d==f[q].d)))&&(f[i].e==f[q].e)) {
					break;
				}
			}
			if(!n) {
				f[i].status=0;
				continue;
			}
			for(int q=i+1; q<=g; ++q)	{
				if((((f[q].type=="Client")&&((f[i].a==f[q].a)&&(f[i].b==f[q].b)))&&((f[i].c==f[q].c)&&(f[i].d==f[q].d)))&&(f[i].e==f[q].e)) {
					f[i].status=-2;
					n=true;
					break;
				}
			}
			if(!n) {
				f[i].status=0;
				continue;
			}
		} else {
			for(int q=1; q<i; ++q) {
				if((((f[q].type=="Server")&&((f[i].a==f[q].a)&&(f[i].b==f[q].b)))&&((f[i].c==f[q].c)&&(f[i].d==f[q].d)))&&(f[i].e==f[q].e)) {
					f[i].status=q;
					n=true;
					break;
				}
				if(!n){
					f[i].status=0;
				}
			}
		}
	}
	for(int i=1; i<=g; ++i){
		if(f[i].status==-1){
			cout<<"ERR"<<endl;
		}
		else if(f[i].status==0){
			cout<<"FAIL"<<endl;
		}
		else if(f[i].status==-2){
			cout<<"OK"<<endl;
		}
		else{
			cout<<f[i].status<<endl;
		}
	}
	return 0;
}
2022/1/1 15:59
加载中...