70分求救!
查看原帖
70分求救!
304360
Rain_Mountain楼主2022/6/25 17:58
#include <iostream>
#include <cstdio>
using namespace std;

long long ad[1005][10];
bool op[1005];

int find(int num)
{
	int i;
	for (i = 1; i < num; ++i)
	{
		if (!op[i] && ad[i][1] == ad[num][1])
		{
			if (ad[i][2] != ad[num][2]) continue;
			if (ad[i][3] != ad[num][3]) continue;
			if (ad[i][4] != ad[num][4]) continue;
			if (ad[i][5] != ad[num][5]) continue;
			return i;
		}
	}
	return 0;
}

int main()
{
	int n, i, j, k, cnt, temp;
	string s;
	cin >> n;
	for (i = 1; i <= n; ++i)
	{
		cin >> s;
		if (s == "Server") op[i] = 0;
		else op[i] = 1;
		cin >> s;
		s += "-";
		k = 1;
		cnt = 0;
		for (j = 0; j < s.size() - 1; ++j)
		{
			if (j && (s[j - 1] < '0' || s[j - 1] > '9') && s[j] == '0' && s[j + 1] >= '0' && s[j + 1] <= '9')
				break;
			if (s[j] < '0' || s[j] > '9')
			{
				if (k > 0 && k < 4 && s[j] == ':' || k == 4 && s[j] == '.') 
					break;
				++k;
			}
			else ad[i][k] = ad[i][k] * 10 + s[j] - '0';
			if (s[j] == '.' || s[j] == ':')
				++cnt;
		}
		if (j < s.size() - 1 || cnt != 4 || ad[i][1] > 255 || ad[i][2] > 255 || ad[i][3] > 255 || ad[i][4] > 255 || ad[i][5] > 65535)
		{
			printf("ERR\n");
			continue;
		}
		if (!op[i])
		{
			if (find(i))
				printf("FAIL");
			else printf("OK");
		}
		else
		{
			temp = find(i);
			if (temp) printf("%d", temp);
			else printf("FAIL");
		}
		printf("\n");
	}
	return 0;
}

各位大佬帮我看看哪错了,感激不尽!

2022/6/25 17:58
加载中...