在每条if语句的最后一行,'ciphered_text'中的当前数组元素已从其中减去26。但是,这似乎只适用于第一部分,而不适用于第二部分。任何人都能看到为什么顺便说一下,任何人都可以告诉我,如果在这里或其他地方是否应该使用其他方法。谢谢。为什么减法工作的第一个,但不是第二个?
for(arrayelement = 0; arrayelement < size; arrayelement++)
{
ciphered_text[arrayelement] = (plain_text[arrayelement]);
if ((int)(ciphered_text[arrayelement]) >= 65 && (int)(ciphered_text[arrayelement]) <= 90)
{
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) + shiftkey;
if (ciphered_text[arrayelement] > 90)
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) - 26;
}
else if ((int)(ciphered_text[arrayelement]) >= 97 && (int)(ciphered_text[arrayelement]) <= 122)
{
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) + shiftkey;
if (ciphered_text[arrayelement] > 122)
ciphered_text[arrayelement] = (int)(ciphered_text[arrayelement]) - 26;
}
}
第二次发生了什么?您应该尝试调试此代码。你很难用你的代码片段来帮助你,你应该提供一个编译的例子。 – Kai
@ user1827332 - 请不要删除原始问题的巨大卡盘。人们可能希望看到它,现在答案没有任何意义。只要把*编辑*并添加到原来的问题。通过一切手段纠正错别字。 –
@ user1827332 - 将原始问题提供给您。只需接受一个答案。 –