Происходит выход за границы при нахождении палиндромов - C#

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

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

почему выходит за границы ?(( ищу слова палидромы
        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = ""; 
            n = System.IO.File.ReadAllLines("zadanie.txt").Length;
            if (File.Exists(frame))
            {
                StreamReader sr = new StreamReader(frame, Encoding.Default);
                a = new string[n];
                k = 0;
                string g = "";
                int tmp, pali = 0, h = 0;
                for (int i = 0; i < n; i++)
                {
                    a[i] = sr.ReadLine();
                    for (int j = 0; j < a[i].Length; j++)
                    {
                        if (a[i][j] == ' ' && a[i][j - 1] != ' ') k++;
                    }
                }
                string[] rezult = new string[k+1];
                for (int i = 0; i < n; i++)
                {
                   
                    for (int j = 0; j < a[i].Length; j++)
                    {
                        if (a[i][j] != ' ') g += a[i][j];
                        if (a[i][j] == ' ' && a[i][j - 1] != ' ')
                        {
                            rezult[h] = g;
                            g = "";
                            h++;
                        }
                        tmp = 0;
                        if (h > 0)
                        {
                            for (int c = rezult[h-1].Length; c > 0; c = c - 1)
                            {
                                if (rezult[h-1][c] == rezult[h-1][tmp])
                                {
                                    tmp++;
                                    if (tmp + 1 ==  rezult[h - 1].Length)
                                    {
                                        pali++;
                                    }
                                }
                                else
                                {
                                    c = 0;
                                }
                            }
                        }
                    }
                }
                
                s = " В файле " +  pali + " слов палиндромов.";
                textBox1.Text +=s;
                sr.Close();
            }
        }
весь день голову ломаю с этой программой выход за границы массива происходит в строке
 if (rezult[h-1][c] == rezult[h-1][tmp])

Решение задачи: «Происходит выход за границы при нахождении палиндромов»

textual
Листинг программы
  for (int c = rezult[h-1].Length; c > 0; c = c - 1)

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


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

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

7   голосов , оценка 4.286 из 5