У меня проблема с кодом, и я не могу найти свою ошибку. Почему работает только первая попытка, а при каждой второй выдает ошибку?
Даже когда я ввожу 323, что, например, верно, и после этого печатаю "истина", все ложно, даже пустые рамки.

class Program
{
    public static void Main()
    {
        string inputedString = Console.ReadLine();
        string reversedString = string.Empty;

        while (true)
        {
            if (inputedString == "END")
            {
                break;
            }

            for (int i = inputedString.Length - 1; i >= 0; i--)
            {
                reversedString += inputedString[i];
            }

            if (reversedString == inputedString)
            {
                Console.WriteLine("true");
            }

            else
            {
                Console.WriteLine("false");
            }
        }
    }
}
0
SPECTR4L 24 Окт 2018 в 01:06

2 ответа

Лучший ответ

Вы читаете первую строку вне цикла и никогда не перечитываете строку внутри цикла. Вы также не очищаете reversedString, поэтому каждый последующий раз в цикле он ошибается.

public static void Main()
{
        string inputedString; 
        string reversedString;

        while (true)
        {
            inputedString = Console.ReadLine();
            reversedString = string.Empty;

            if (inputedString == "END")
            {
                break;
            }

            for (int i = inputedString.Length - 1; i >= 0; i--)
            {
                reversedString += inputedString[i];
            }

            if (reversedString == inputedString)
            {
                Console.WriteLine("true");
            }

            else
            {
                Console.WriteLine("false");
            }
        }
    }
}
1
rerun 23 Окт 2018 в 22:16

Часть приведенного ниже кода должна находиться внутри цикла while.

string inputedString = Console.ReadLine();
string reversedString = string.Empty;
1
Henrique Maia 23 Окт 2018 в 22:15
52958478