Дан двумерный массив размером n*m, заполненный случайным образом (-100,100). (язык C#)
ВЫПОЛНИТЬ ЛЮБЫЕ 3-4 задания из 9
1. Заменить максимальный по модулю элемент каждой строки на противоположный по знаку.
2. Определить в нем разность между средним арифметическим элементов массива и максимальным элементом массива.
3. Найти строку с минимальной суммой и в ней максимальный элемент.
4. Заменить максимальный элемент каждой строки нулем
5. Поменять местами второй и предпоследний столбцы.
6. Заменить максимальный элемент каждого столбца нулем
7. Найти среднее арифметическое элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу.
8. Заменить все элементы массива, кратные трем нулем
9. Вывести индексы элементов, кратных 5
Ответы на вопрос
using System;
namespace restless
{
class Program
{
static void PrintMatrix(int[,] matr, int n, int m)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write($"{matr[i, j]} ");
}
Console.WriteLine();
}
}
static void Main()
{
int n = 3, m = 5;
int[,] matrix = new int[n, m];
Random rnd = new Random();
//заполняем матрицу
Console.WriteLine("Исходная матрица: ");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
matrix[i, j] = rnd.Next(-100, 100);
Console.Write($"{matrix[i, j]} ");
}
Console.WriteLine();
}
Console.WriteLine();
//9 номер
Console.WriteLine("Индексы элементов, кратных 5: ");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (matrix[i, j] % 5 == 0)
Console.WriteLine($"i = {i} j = {j} ");
}
}
Console.WriteLine();
//7 номер
int _sum = 0;
for (int i = 0; i < m; i++)
{
_sum += matrix[0, i];
}
Console.WriteLine($"Среднее арифметическое 1 строки: {(float)_sum / m}");
_sum = 0;
for (int i = 0; i < m; i++)
{
_sum += matrix[n-1, i];
}
Console.WriteLine($"Среднее арифметическое последней строки: {(float)_sum / m}");
_sum = 0;
for (int i = 0; i < n; i++)
{
_sum += matrix[i, 0];
}
Console.WriteLine($"Среднее арифметическое 1 столбца: {(float)_sum / m}");
_sum = 0;
for (int i = 0; i < n; i++)
{
_sum += matrix[i, m-1];
}
Console.WriteLine($"Среднее арифметическое последнего столбца: {(float)_sum / m}\n");
//5 номер
for (int i = 0; i < n; i++)
{
(matrix[i, 1], matrix[i, m - 2]) = (matrix[i, m - 2], matrix[i, 1]);
}
Console.WriteLine("Матрица после перестановки 2 и предпоследнего столбца: ");
PrintMatrix(matrix, n, m);
//вернем матрицу к изначальному виду
for (int i = 0; i < n; i++)
{
int temp = matrix[i, 1];
matrix[i, 1] = matrix[i, m - 2];
matrix[i, m - 2] = temp;
}
Console.WriteLine();
//номер 8
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (matrix[i, j] % 3 == 0)
matrix[i, j] = 0;
}
}
Console.WriteLine("Матрица после замены элементов кратных 3 на нули: ");
PrintMatrix(matrix, n, m);
}
}
}