各 if ステートメントの最後の行で、'ciphered_text' の現在の配列要素から 26 が減算されます。ただし、これは最初のセクションでのみ機能し、2 番目のセクションでは機能しないようです。誰でも理由がわかりますか?余談ですが、ここでelse ifまたはelseを使用する必要があるかどうかを誰かに教えてもらえますか。ありがとう。
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;
}
}