Ошибка индекс находится вне границ массива - 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])
- ...
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д