Загрузка данных


using System;

class Program
{
    static void Main()
    {
        Random rnd = new Random();

        // 1
        int[,] arr1 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr1[i, j] = rnd.Next(-10, 11);

        // а) четные в углах
        bool evenCorners = arr1[0, 0] % 2 == 0 || arr1[0, 3] % 2 == 0
                         arr1[3, 0] % 2 == 0  arr1[3, 3] % 2 == 0;
        Console.WriteLine("1а) Есть чётные в углах: " + evenCorners);

        // б) числа, оканчивающиеся на 0
        bool endsWithZero = arr1[0, 0] % 10 == 0 || arr1[0, 3] % 10 == 0
                          arr1[3, 0] % 10 == 0  arr1[3, 3] % 10 == 0;
        Console.WriteLine("1б) Есть оканчивающиеся на 0 в углах: " + endsWithZero);

        // 2
        int[,] arr2 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr2[i, j] = rnd.Next(1, 20);

        Console.Write("2) Введите номер столбца k (0-3): ");
        int k2 = int.Parse(Console.ReadLine());
        Console.Write("2) Введите номер строки n (0-3): ");
        int n2 = int.Parse(Console.ReadLine());

        // а) элементы k-го столбца снизу вверх
        Console.Write("2а) Столбец " + k2 + " снизу: ");
        for (int i = 3; i >= 0; i--)
            Console.Write(arr2[i, k2] + " ");
        Console.WriteLine();

        // б) элементы n-й строки снизу вверх
        Console.Write("2б) Строка " + n2 + " снизу: ");
        for (int j = 3; j >= 0; j--)
            Console.Write(arr2[n2, j] + " ");
        Console.WriteLine();

        // 3
        int[,] arr3 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr3[i, j] = rnd.Next(-10, 20);

        int sum3 = 0;
        int sumSq3 = 0;
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                sum3 += arr3[i, j];
                sumSq3 += arr3[i, j] * arr3[i, j];
            }
        }
        double avg3 = (double)sum3 / 16;

        Console.WriteLine("3а) Сумма элементов: " + sum3);
        Console.WriteLine("3б) Сумма квадратов: " + sumSq3);
        Console.WriteLine("3в) Среднее: " + avg3);

        // 4
        int[,] arr4 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr4[i, j] = rnd.Next(1, 20);

        // а) строка с минимальной суммой
        int minRowSum = int.MaxValue;
        int minRowIndex = 0;
        for (int i = 0; i < 4; i++)
        {
            int rowSum = 0;
            for (int j = 0; j < 4; j++)
                rowSum += arr4[i, j];
            if (rowSum < minRowSum)
            {
                minRowSum = rowSum;
                minRowIndex = i;
            }
        }
        Console.WriteLine("4а) Строка с мин суммой: " + minRowIndex + " (сумма " + minRowSum + ")");

        // б) столбец с максимальной суммой
        int maxColSum = int.MinValue;
        int maxColIndex = 0;
        for (int j = 0; j < 4; j++)
        {
            int colSum = 0;
            for (int i = 0; i < 4; i++)
                colSum += arr4[i, j];
            if (colSum > maxColSum)
            {
                maxColSum = colSum;
                maxColIndex = j;
            }
        }
        Console.WriteLine("4б) Столбец с макс суммой: " + maxColIndex + " (сумма " + maxColSum + ")");

        // 5
        int[,] arr5 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr5[i, j] = rnd.Next(1, 20);

        Console.Write("5) Введите номер строки k (0-3): ");
        int k5 = int.Parse(Console.ReadLine());
        Console.Write("5) Введите номер столбца s (0-3): ");
        int s5 = int.Parse(Console.ReadLine());

        int rowSum5 = 0;
        int colSum5 = 0;
        for (int j = 0; j < 4; j++)
            rowSum5 += arr5[k5, j];
        for (int i = 0; i < 4; i++)
            colSum5 += arr5[i, s5];

        int max5 = rowSum5 > colSum5 ? rowSum5 : colSum5;
        Console. WriteLine("5) Максимум из двух сумм: " + max5);

        // 6
        int[,] arr6 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr6[i, j] = rnd.Next(-10, 10);

        // а) первый отрицательный в каждой строке
        Console.WriteLine("6а) Первые отрицательные по строкам:");
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                if (arr6[i, j] < 0)
                {
                    Console.WriteLine("  Строка " + i + ": " + arr6[i, j]);
                    break;
                }
            }
        }

        // б) последний чётный в каждой строке
        Console.WriteLine("6б) Последние чётные по строкам:");
        for (int i = 0; i < 4; i++)
        {
            for (int j = 3; j >= 0; j--)
            {
                if (arr6[i, j] % 2 == 0)
                {
                    Console.WriteLine("  Строка " + i + ": " + arr6[i, j]);
                    break;
                }
            }
        }

        // 7
        int[,] arr7 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr7[i, j] = rnd.Next(1, 20);

        // а) минимум главной диагонали
        int minMain = arr7[0, 0];
        for (int i = 1; i < 4; i++)
        {
            if (arr7[i, i] < minMain)
                minMain = arr7[i, i];
        }
        Console.WriteLine("7а) Мин главной диагонали: " + minMain);

        // б) максимум побочной диагонали
        int maxSide = arr7[0, 3];
        for (int i = 1; i < 4; i++)
        {
            if (arr7[i, 3 - i] > maxSide)
                maxSide = arr7[i, 3 - i];
        }
        Console.WriteLine("7б) Макс побочной диагонали: " + maxSide);

        // 8
        int[,] arr8 = new int[4, 4];
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                arr8[i, j] = rnd.Next(1, 20);

        // а) поменять первый и предпоследний столбцы
        for (int i = 0; i < 4; i++)
        {
            int temp = arr8[i, 0];
            arr8[i, 0] = arr8[i, 2];
            arr8[i, 2] = temp;
        }
        Console.WriteLine("8а) Первый и предпоследний столбцы поменяны");

        // б) поменять вторую и последнюю строки
        for (int j = 0; j < 4; j++)
        {
            int temp = arr8[1, j];
            arr8[1, j] = arr8[3, j];
            arr8[3, j] = temp;
        }
        Console.WriteLine("8б) Вторая и последняя строки поменяны");

        // 9
        int n9 = 4;
        int[,] arr9 = new int[n9, n9];
        for (int i = 0; i < n9; i++)
            for (int j = 0; j < n9; j++)
                arr9[i, j] = rnd.Next(-10, 10);

        // а) отрицательные в одномерный массив
        int negCount = 0;
        for (int i = 0; i < n9; i++)
            for (int j = 0; j < n9; j++)
                if (arr9[i, j] < 0)
                    negCount++;

        int[] negArr = new int[negCount];
        int idx = 0;
        for (int i = 0; i < n9; i++)
            for (int j = 0; j < n9; j++)
                if (arr9[i, j] < 0)
                {
                    negArr[idx] = arr9[i, j];
                    idx++;
                }

        Console.Write("9а) Отрицательные: ");
        for (int i = 0; i < negCount; i++)
            Console.Write(negArr[i] + " ");
        Console.WriteLine();

        // б) чётные и нечётные в разные массивы
        int evenCount = 0;
        int oddCount = 0;
        for (int i = 0; i < n9; i++)
            for (int j = 0; j < n9; j++)
                if (arr9[i, j] % 2 == 0)
                    evenCount++;
                else
                    oddCount++;

        int[] evenArr = new int[evenCount];
        int[] oddArr = new int[oddCount];
        int ei = 0;
        int oi = 0;
        for (int i = 0; i < n9; i++)
        {
            for (int j = 0; j < n9; j++)
            {
                if (arr9[i, j] % 2 == 0)
                {
                    evenArr[ei] = arr9[i, j];
                    ei++;
                } else
                {
                    oddArr[oi] = arr9[i, j];
                    oi++;
                }
            }
        }

        Console.Write("9б) Чётные: ");
        for (int i = 0; i < evenCount; i++)
            Console.Write(evenArr[i] + " ");
        Console.WriteLine();

        Console.Write("9б) Нечётные: ");
        for (int i = 0; i < oddCount; i++)
            Console.Write(oddArr[i] + " ");
        Console.WriteLine();
    }
}