Заменить первые k элементов массива на те же элементы в обратном порядке
Замена происходит ровно до середины, после чего оставшиеся элементы массива просто переписываются, например замена первых 6 элементов массива 1,2,3,4,5,6,7,8,9,10 выглядит как 6,5,4,4,5,6,7,8,9,10 вместо 6,5,4,3,2,1,7,8,9,10. Сам массив задан в главном методе, решение задачи нужно оформить как отдельный метод.
static void Change(int[] list)
{
Console.WriteLine("Заменить первые k элементов массива на те же элементы в обратном порядке.");
Console.WriteLine("Исходный массив:");
foreach (int num in list)
{
Console.Write(num + " ");
}
Console.WriteLine("\nВведите k\n");
int k = int.Parse(Console.ReadLine());
for (int i = 0; i <= k ; i++)
{
list[i] = list[k - i];
}
foreach (int num in list)
{
Console.Write(num + " ");
}
}
Ответы (2 шт):
Автор решения: aepot
→ Ссылка
for (int i = 0; i < k / 2 ; i++)
{
int x = list[i];
list[i] = list[k - i - 1];
list[k - i - 1] = x;
}
Автор решения: Qwertiy
→ Ссылка
using System;
public class Test
{
public static void Main()
{
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8 };
Array.Reverse(a, 0, 4);
Console.WriteLine(String.Join(" ", a));
}
}
https://dotnetfiddle.net/vd9m1B
using System;
public class Program
{
public static void Main()
{
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8 };
new Span<int>(a, 0, 4).Reverse();
Console.WriteLine(String.Join(" ", a));
}
}
4 3 2 1 5 6 7 8