Почему выдает неправильный результат - C#
Формулировка задачи:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
// Дан массив, содержащий большое количество нулевых элементов.
// Заменить все группы подряд встречающихся нулей на один нуль.
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[20];
Random r = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = r.Next(2);
}
for (int i = 0; i < arr.Length; i++)
{
Console.Write("{0} ", arr[i]);
}
ArrayList list = new ArrayList();
for (int i = 0; i < arr.Length - 1; i++)
{
if (arr[i] == 0 && arr[i + 1] == 0)
{
break;
}
list.Add(arr[i]);
}
Console.WriteLine("\nAfter deleting 0...");
foreach (var s in list)
{
Console.Write("{0} ", s);
}
Console.ReadKey();
}
}
}
Я понял. что мой break полностью завершает внешний цикл, помогите исправить
Решение задачи: «Почему выдает неправильный результат»
textual
Листинг программы
static void Main()
{
var arr = new[] {1, 3, 5, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 6, 2};
var list = new List<int>();
for (int i = 0; i < arr.Length - 1; i++)
if (arr[i] != 0 || arr[i + 1] != 0)
list.Add(arr[i]);
if (list.Last() != 0 || arr[arr.Length-1] != 0)
list.Add(arr[arr.Length-1]);
foreach (var v in list)
Console.WriteLine(v);
Console.ReadKey(true);
}