using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int[] numbers = { 1, -4, 7, 12 }; int[] numbers2 = new int[4]; for (int i = 0; i < numbers.Length; i++) { if ( numbers[i] > 0 ) { numbers2[i] = numbers[i]; } else if(numbers[i] < 0 ) { i--; } } } } } Код using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int[] numbers = { 1, -4, 7, 12 }; int[] numbers2 = new int[4]; for (int i = 0; i < numbers.Length; i++) { if ( numbers[i] > 0 ) { numbers2[i] = numbers[i]; } else if(numbers[i] < 0 ) { i--; } } } } }
Потому что бесконечно застревает, когда попадает на отрицательное число. У тебя обращение всегда к одному и тому же индексу в двух массивах идет. Сделай два раздельных индекса
@PeaceDeath, Да, я изза этого И сделал декрементацию. Можешь показать как сделать с двумя раздельними индексами?