Индекс находился вне границ массива и Console.WriteLine () выводит 2 раза (надо 1) - C#
Формулировка задачи:
Доброго времени суток! Запутался. Помогите исправить 2 ошибки!
1) Индекс находился вне границ массива
2) Console.WriteLine () выводит 2 раза (надо 1)
Сама программа всё считает правильно!
Условие.
Дана последовательность из m единиц и нулей.Рассмотреть отрезки этой последовательности (подпоследовательности идущих подряд чисел), состоящие из одних нулей.Получить наименьшую из длин рассматриваемых отрезков.using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace z4 { class Program { static void Main(string[] args) { /*zl 7.77. Дана последовательность из m единиц и нулей.Рассмотреть отрезки этой последовательности * (подпоследовательности идущих подряд чисел), состоящие из одних нулей.Получить наименьшую из * длин рассматриваемых отрезков. */ int []a=new int [10]{0,0,0,0,1,0,0,0,0,0}; int i,j,k,mn=a.Length,imn; Console.Write("Массив: "); for (i=0; i<a.Length;i++) { Console.Write(a[i]+ " "); } i=1; mn=a.Length; imn=0; while(i<=a.Length) { if (a[i]==a[i-1]) { j=i;k=1; while(a[j]==a[j-1] && j<=a.Length) { j=j+1; k=k+1; } if(k<mn && k>=2) { mn=k; imn=i-1; } i=i+k; } else i=i+1; if (mn==a.Length) { Console.WriteLine("Нет одинаковых рядом!"); } else Console.WriteLine("Наименьшая длина отрезка из нулей: "+ mn); // for (i=imn; i<imn+mn-1;i++) // { // Console.WriteLine(a[i]+ " "); // } } Console.ReadKey(); } } }
Решение задачи: «Индекс находился вне границ массива и Console.WriteLine () выводит 2 раза (надо 1)»
textual
Листинг программы
using System; namespace z4 { class Program { static void Main() { int[] a = new[] { 0, 0, 1, 0, 1, 0, 0, 0, 0, 1 }; Console.Write("Массив: "); foreach(int item in a) { Console.Write(item + " "); } int i = 1; int mn = a.Length; while (i < a.Length) { if (a[i] == a[i - 1]) { int j = i; int k = 1; while (j < a.Length && a[j] == a[j - 1]) { j++; k++; } if (k < mn && k >= 2) { mn = k; } i += k; } else { i++; } } if (mn == a.Length) { Console.WriteLine("Нет одинаковых рядом!"); } else { Console.WriteLine("Наименьшая длина отрезка из нулей: " + mn); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д