有无大佬看看为什么我自己运行的结果和在洛谷上运行的结果不一样
查看原帖
有无大佬看看为什么我自己运行的结果和在洛谷上运行的结果不一样
903039
muyuyumu楼主2024/3/15 22:16
#include <iostream>
using namespace std;
int main()
{
	char origanMsg[120];
	char codeMsg[120];
	char waitInterpretMsg[120];
	char code1[30];
	char code2[30];
	int i = 0;
	for (int x = 0; x <= 25; x++)
	{
		code1[x] = 'f';
		code2[x] = 'f';
	}
	while (true)
	{
		cin.get(origanMsg[i]);
		if (origanMsg[i] == '\n')
			break;
		i++;
	}
	for (int n = 0; n <= i; n++)
	{
		cin.get(codeMsg[n]);
	}
	int n = 0;
	while (true)
	{
		cin.get(waitInterpretMsg[n]);
		if (waitInterpretMsg[n] == '\n')
			break;
		n++;
	}


	for (int n = 0; n < i; n++)
	{
		
		if (code1[origanMsg[n] - 'A'] != 'f' && code1[origanMsg[n] - 'A'] != codeMsg[n] || code2[codeMsg[n] - 'A'] != origanMsg[n]&& code2[codeMsg[n] - 'A']!='f')
		{
			cout << "Failed";
			return 0;
		}
		code1[origanMsg[n] - 'A'] = codeMsg[n];
		code2[codeMsg[n] - 'A'] = origanMsg[n];
	}
	for (int x = 0; x <= 25; x++)
	{
		if (code1[x] == 'f')
		{
			cout << "Failed";
			return 0;
		}
	}
	i = 0;
	while (true)
	{
		if (waitInterpretMsg[i] == '\n')
		{
			break;
		}
		cout << code1[waitInterpretMsg[i] - 'A'];
		i++;
	}
}

//输入
XOCKPGHZQWTRLEMBIYJNFVUSADIPLOEQSNIGYQLBFDYNKKOCCIFEWYAAVXKBPHRXDWLKLWQFLIYFCMZGJFANGLUDCTWDUAJNFEUA WDGASYNVPHLQRCMXJFTOIKEZUBJSRDCPZOJYFPRXIBFOAADGGJICHFUUKWAXSNQWBHRARHPIRJFIGMVYTIUOYREBGLHBEUTOICEU KSDPBTWJMVQKSNABRIIOAVUZXQXONXNYGBOKMQKDGEKSMBQGYXLCLEYBDMMOSVXCNYDVEGWBLCHYYSFDVZYVBLZQUWDJTOJFSLTC
//我的输出 AZBSXLHTMKPAZOUXQJJDUKEVWPWDOWOFYXDAMPABYCAZMXPYFWRGRCFXBMMDZKWGOFBKCYHXRGNFFZIBKVFKXRVPEHBTLDTIZRLG
//正确答案
AZBSXLHTMKPAZOUXQJJDUKEVWPWDOWOFYXDAMPABYCAZMXPYFWRGRCFXBMMDZKWGOFBKCYHXRGNFFZIBKVFKXRVPEHBTLDTIZRLG //但是在洛谷上面运行输出是一个Failed

2024/3/15 22:16
加载中...