Найти произведение элементов массива расположенных между первым и вторым нулевыми элементами - C#

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

нужно найти произведение элементов массива расположенных между первым и вторым нулевыми элементами
            for (int I = 0; I < n; I++)           
           { if (Arr[I] == 0) { Console.WriteLine("первый нулевой элемент = " + (I + 1)); per = I+1;  break; } }
            for (int I = per; I < n; I++)
            { if (Arr[I] == 0) { Console.WriteLine("второй нулевой элемент = " + (I + 1)); I = vtor;  break; } }
            for (int I = per; I < vtor; I++) { proiz = proiz*Arr[I]; }
в результате всегда 1, так как я сначала присвоил proiz=1, то есть ничего не меняется. где ошибка? хотя, позиции первого и второго нулевых выводит правильно!

Код к задаче: «Найти произведение элементов массива расположенных между первым и вторым нулевыми элементами - C#»

textual
   private static long Op(int[] x)
        {
            long m = 0;
            for (int i = 1; m == 0 || x[i] != 0; ++i)
                if (x[i] != 0) { if (m == 0 && x[i-1] == 0) ++m; m *= x[i]; }
            return m;
        }

13   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ