2021普及T3
  • 板块学术版
  • 楼主uFTvL9
  • 当前回复10
  • 已保存回复10
  • 发布时间2021/11/27 11:13
  • 上次更新2023/11/3 23:29:44
查看原帖
2021普及T3
411963
uFTvL9楼主2021/11/27 11:13

有两个问题,恳请路过的大佬帮忙看一下,谢谢。 以下为问题描述,问题一共两个: 1.全代码如下,其中第74行的true为调试时进行的改动,经本人测验,第74行以下的代码无误,但是当第74行改为调用Address_Checker(char Input_Address[]) 这个函数时,由原本的55分变成了5分。

//#pragma GCC optimize(3)
#include <bits/stdc++.h>
using namespace std;

const int Max_Sizeof_op = 6;
const int Max_Sizeof_ad = 25;

inline bool Parameter_Checker(char Input_Str[], int Parameter_Limit) {
	if(Input_Str[0] == '0')
		return false;
	
	int Num_Str = 0;
	int Strlen = strlen(Input_Str);
	
	for(int i = 0; i < Strlen; i++)
		Num_Str += Input_Str[i] * pow(10, Strlen - i);
	if((Num_Str < 0) or (Num_Str > Parameter_Limit))
		return false;
	return true;
} 

const int Max_Length_Parameter = 20;
inline bool Address_Checker(char Input_Address[]) {
	
	char Parameter [5][Max_Length_Parameter];
	char Correct_Sign_Set [5] {'.', '.', '.', ':'};
	char Scanned_Sign_Set [5];
	register int Scanned_tag_Par  = 0;
	register int Scanned_tag_Sign = 0;
	register int var_rep = 0;
	int Length_Address = strlen(Input_Address);
//!-------------------------------------------------------------------	
	for(int i = 0; i < Length_Address; i++) {
		if(Input_Address[i] == '.' or Input_Address[i] == ';') {
			Scanned_Sign_Set [Scanned_tag_Sign] = Input_Address[i];
			Scanned_tag_Sign++;
			Scanned_tag_Par ++;
			var_rep = 0;
			continue;
		}
		Parameter [Scanned_tag_Par][++var_rep] = Input_Address[i];
	}
//------------------------------------------------------------------	
	if(strcmp(Scanned_Sign_Set, Correct_Sign_Set) == true) 
		return false;
//------------------------------------------------------------------
	int Parameter_Limit[5] {255, 255, 255, 255, 65535};
	for(int i = 0; i < Scanned_tag_Par; i++) {
		if(Parameter_Checker(Parameter[i], Parameter_Limit[i]) == false)
			return false;
	}
//------------------------------------------------------------------
	return true;
}

inline void CCF2021_CSP_J2_T3() {
	int n;
	cin >> n;
	#if false
		n = 1;
	#endif
#define op Connector_Type
#define ad Address
	char Connector_Type [Max_Sizeof_op + 1];
	char Address [n][Max_Sizeof_ad + 1];
	int Correct_Server_Address_set [n];
	int set_Searcher_tag = 0;
#define csas Correct_Server_Address_set
#define  sst set_Searcher_tag

	for(register int i = 0; i < n; i++) {
		cin >> Connector_Type;
		cin >> Address[i];
		if(true) {
			if(strcmp(Connector_Type, "Server") == false) {
				for(register int j = 0; j < sst; j++) {
					if(strcmp(Address[i], Address[csas[j]]) == false) {
						cout << "FAIL" << endl;
						goto leap;
					}
				}
				cout << "OK" << endl;
				Correct_Server_Address_set [sst] = i;
				set_Searcher_tag++;
				goto leap;
			}

			if(strcmp(Connector_Type, "Client") == false) {
				for(register int j = 0; j < sst; j++) {
					if(strcmp(Address[i], Address[csas[j]]) == false) {
						cout << csas[j] + 1 << endl;
						goto leap;
					}
				}
				cout << "FAIL" << endl;
				goto leap;
			}
		}
		cout << "ERR" << endl;
		leap:;
	}
}

int main() {
	//ios::sync_with_studio(false);
	//freopen("network.in" , "r", stdin );
	//freopen("nerwork.out", "w", stdout);
	CCF2021_CSP_J2_T3();
	return 0;
}

2.如图所示的编译警告是由什么引起的 问题2图

2021/11/27 11:13
加载中...