Бесконечный цикл - C# (185548)

Узнай цену своей работы

Формулировка задачи:

Хелп, не могу избавиться от бесконечной рекурсии
public void Run2(string str,int i)
        {
            char c;
            Stack s = new Stack();
            if (str.Length % 2 == 0)
            {
                if (i < str.Length)
                {
                    {
                        if ((str[i] == '(') || (str[i] == '[') || (str[i] == '{'))
                        {
                            s.Push(str[i]);
                            Run2(str, i++);
                        }
                        else if ((str[i] == ')') || (str[i] == ']') || (str[i] == '}'))
                        {
                            if (s.Count == 0)
                            {
                                MessageBox.Show("Строка не симметрична");
                            }
                            c = (char)s.Pop();
                            if (((c == '{') && (str[i] == '}')) ||
                                ((c == '[') && (str[i] == ']')) ||
                                ((c == '(') && (str[i] == ')')))
                            {
                                Run2(str, i++);
                            }
                            else
                            {
                                MessageBox.Show("Строка не симметрична");
                            }
                        }
                    }
                    if (s.Count > 0)
                    {
                        MessageBox.Show("Строка не симметрична");
                    }
                    else MessageBox.Show("Строка симметрична");
                }
            }
            else MessageBox.Show("Строка не симметрична");
        }

Решение задачи: «Бесконечный цикл»

textual
Листинг программы
Run2()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5