求助,为什么测试点2输出到一半不输出了,其余都是对的····
查看原帖
求助,为什么测试点2输出到一半不输出了,其余都是对的····
974165
config_less楼主2023/8/16 03:34
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char M[1100], C[1100], k[110], i, k_i=0, p=0;
	int key[110];
	cin>>k;	
	cin>>M;
	for(i=0;i<strlen(k);i++)
	{
		if(k[i]>='A'&&k[i]<='Z')
		{
			key[i]=(int)k[i]-65;
		}
		else if(k[i]>='a'&&k[i]<='z')
		{
			key[i]=(int)k[i]-97;
		}
	}
	for(i=0;i<strlen(M);i++)
	{
		if(i!=0&&p==0) k_i++;
		else if(p==1) p=0;
		
		if(M[i]>='A'&&M[i]<='Z')
		{											// M:z   k:14   M:n
			if(M[i]-key[k_i]<'A')
			{
				C[i]=(char)M[i]+26-key[k_i];
			}
			else
			{
				C[i]=(char)M[i]-key[k_i];
			}	 
		}
		if(M[i]>='a'&&M[i]<='z')
		{
			if(M[i]-key[k_i]<'a')
			{
				C[i]=(char)M[i]+26-key[k_i];
			}
			else
			{
				C[i]=(char)(M[i]-key[k_i]);
			}			 
		}
		if(k_i==strlen(k)-1)
		{
			k_i=0;
			p=1;
		}	
	}
	cout<<C;
	return 0;
}
2023/8/16 03:34
加载中...