Ошибка индекс находится вне границ массива - C#

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

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

Помогите пожалуйста, программа ругается, вроде делает то, что должна, но выдает ошибку после вывода.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Кр_программирование_1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Данная программа предназначена для поиска меньшего массива в большем");
            Console.Write("Введите размерность  массива B : ");
            int m = Int32.Parse(Console.ReadLine());
            Console.Write("Введите размерность  массива A : ");
            int n = Int32.Parse(Console.ReadLine());
            int[] A = new int[n];
            int[] B = new int[m];
            //Ввод массива вручную
            Console.WriteLine("Массив A");
            for (int i = 0; i < n; i++)
            {
                Console.Write("Введите элемент [");
                Console.Write(i);
                Console.Write("] ");
                A[i] = Int32.Parse(Console.ReadLine());
            }
            Console.WriteLine("Массив B");
            for (int i = 0; i < m; i++)
            {
                Console.Write("Введите элемент [");
                Console.Write(i);
                Console.Write("] ");
                B[i] = Int32.Parse(Console.ReadLine());
            }
            int ipos, k, v;
            for (ipos = 0; ipos <= n; ipos++)
            {
                k = 0;
                for (v = 0; v < m; v++)
                    if (A[v] == B[ipos + v]) // здесь выдает ошибку
                        break;
                    else
                        k++;
                for (v = 0; v < m; v++)
                    if (A[v] != B[ipos + v])
                        break;
                    else
                        k++;
                if (k == m)
                {
                    Console.WriteLine("Входит", ipos);
                    break;
                }
                else
                if (k != m)
                    Console.WriteLine("Не входит");
            }
            Console.Read();
        }
    }
}

Решение задачи: «Ошибка индекс находится вне границ массива»

textual
Листинг программы
for (ipos = 0; ipos <= n; ipos++)
{
...
if (A[v] == B[ipos + v])
...
}

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


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

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

5   голосов , оценка 3.2 из 5
Похожие ответы