0
C# 인트로 클래스에 대한 "암호화"프로그램을 작성해야합니다. 2 가지 문제가 발생했습니다 :암호화/복호화 충돌
- 음수가 입력되거나 암호 해독 프로세스 중에 음수가 계산되면 충돌이 발생합니다. - 반환하고 처리되지 않은 예외 오류 : System.FormatException : 입력 된 문자열이 올바른 형식이 아닙니다.
- 암호 해독은 원래 변수를 사용하지 않고 암호화의 역순으로 수행해야합니다. 어떻게 나머지 계산을 뒤집을 수 있습니까?
나는 do while 루프의 일부분이라는 것을 안다. 음수가 입력되면 해쉬 값을 묻는 메시지를 계속 표시하고 암호 해독 계산 중에 오류가 발생하지 않도록하는 방법을 모르겠다. . 모든 지침을 많이 주시면 감사하겠습니다. 그것을 살펴 주셔서 감사합니다!
public class MainClass
{
public static void Main(string[] args)
{
int num = 0;
int dnum = 0;
do
{
Console.Write("Please enter a non-negative integer to encrypt: ");
num = Convert.ToInt32(Console.ReadLine());
string numstr = Convert.ToString(num);
string num1 = Convert.ToString(numstr.Substring(0, 1));
string num2 = Convert.ToString(numstr.Substring(1, 1));
string num3 = Convert.ToString(numstr.Substring(2, 1));
string num4 = Convert.ToString(numstr.Substring(3, 1));
int enum1 = ((Convert.ToInt32(num1) + 7) % 10);
int enum2 = ((Convert.ToInt32(num2) + 7) % 10);
int enum3 = ((Convert.ToInt32(num3) + 7) % 10);
int enum4 = ((Convert.ToInt32(num4) + 7) % 10);
Console.WriteLine("Encrypted Integer: {0:D4}", (1000 * enum3 + 100 * enum4 + 10 * enum1 + enum2));
Console.Write("Please enter a non-negative integer to decrypt: ");
dnum = Convert.ToInt32(Console.ReadLine());
string dnumstr = Convert.ToString(dnum);
string num1d = Convert.ToString(dnumstr.Substring(0, 1));
string num2d = Convert.ToString(dnumstr.Substring(1, 1));
string num3d = Convert.ToString(dnumstr.Substring(2, 1));
string num4d = Convert.ToString(dnumstr.Substring(3, 1));
int dnum1 = ((Convert.ToInt32(num1d) - 7) * 10);
int dnum2 = ((Convert.ToInt32(num2d) - 7) * 10);
int dnum3 = ((Convert.ToInt32(num3d) - 7) * 10);
int dnum4 = ((Convert.ToInt32(num4d) - 7) * 10);
Console.WriteLine("Decrypted Integer: {0:D4}", (1000 * dnum1 + 100 * dnum2 + 10 * dnum3 + dnum4));
} while (num > 0);
} // end Main
}// end class
단순히 음수를 확인하고 지침을 읽는 방법을 알지 못하도록 사용자에게 알립니다 (물론 정중 한 방법으로). – Wjdavis5
@Heather "it crashes"는 결코 문제에 대한 충분한 설명이 아닙니다. 충돌에 대한 자세한 정보를 제공하려면 ** 필요합니다. 디버거에서 프로그램을 실행해야합니다. 그러면 디버거에서 호출 스택과 같은 크래시에 대한 많은 맛있는 정보를 얻을 수 있습니다.이 정보는 질문에서 재현해야합니다. 그러한 정보를 포함 시키면 질문에 대한 좋은 대답을 얻는 것이 훨씬 쉬워집니다. – spender
@spender - 좋은 지적입니다! 죄송합니다. 저는이 사이트를 처음 사용하고 있으며이 분야에 대한 도움을 요청하고 있습니다. -가 입력되면 반환되고 처리되지 않은 예외 오류가 발생합니다. System.FormatException : 입력 문자열의 형식이 올바르지 않습니다. 내가 가지고있는 문제는 아마도 그것이 현실 세계가 아니더라도 부정적인면을 설명해야한다는 것입니다. – Heather