Прошу предложить лучший вариант перебора массива - C#
Формулировка задачи:
Всем доброго дня, такой вопросик.
есть массив
есть цикл foreach который выводит этот массив
теперь вопрос, как можно в т.е. какие числа в массиве не важно, просто надо их перевернуть в обратном порядке, заранее благодарен за варианты.
int[] array = { 1, 2, 3, 4, 5, 6, 7 };
foreach (var i in array) { Console.WriteLine(i); }
рукопашную
изменить массив так, чтобы при передачи егоТОЛЬКО В ЦИКЛ foreach
, он выводился задом наперед, т.е. 7,6,5,4,3,2,1 (в данном случае) т.е. нужно изменить массив до цикла foreach.- вопрос имеет чисто учебный характер
- нельзя применять любые встроенные методы C#
- сортировать массив не нужно
- также нужно чтобы способ работал при любой длине массива с числами
- в качестве примера можно взять допустим и такой массив int[] array = { 65, 2, 63, 4, 9, 32, 6 };
class Program { static void Main(string[] args) { int[] array = { 1, 2, 3, 4, 5, 6, 7 }; Masorybka(array); foreach (var i in array) { Console.WriteLine(i); } Console.ReadLine(); } private static void Masorybka(int[] mass) { int dlina = mass.Length - 1; int delta = 0; if ((dlina & 1) == 0) { for (int i = 0; i < mass.Length - 1; i++) { if ((mass.Length - 1) / 2 <= i) continue; dlina -= delta; int temp = mass[i]; mass[i] = mass[dlina]; mass[dlina] = temp; if (i == 0) delta = 1; } } else { for (int i = 0; i < mass.Length - 1; i++) { if ((mass.Length - 1) / 2 + 1 <= i) continue; dlina -= delta; int temp = mass[i]; mass[i] = mass[dlina]; mass[dlina] = temp; if (i == 0) delta = 1; } } } }
Решение задачи: «Прошу предложить лучший вариант перебора массива»
textual
Листинг программы
int[] foo = new int[] { 1, 2, 3, 4, 5, 6, 7 }; int[] bar = new int[foo.Length]; for (int i = 0; i < foo.Length; i++) { bar[i] = foo[foo.Length - i - 1]; } foreach (int i in bar) { Console.Write("{0} ", i); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д