Двумерный массив. Найти для каждой из трёх заданных прямоугольных матриц сумму квадратов её элементов, произведение положительных элементов, минимальный элемент, максимальный элемент и номера строки и столбца, на пересечении которых он находится. C#
Чтобы найти сумму квадратов элементов двумерного массива, можно использовать вложенный цикл для прохождения по каждому элементу массива и просуммировать квадраты этих элементов:
int sumOfSquares = 0;
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
sumOfSquares += array[i,j] * array[i,j];
}
}
Чтобы найти произведение положительных элементов, можно использовать аналогичный цикл, но при каждой итерации проверять, является ли текущий элемент положительным и если да, умножать его на общее произведение:
int positiveProduct = 1;
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
if (array[i,j] > 0)
positiveProduct *= array[i,j];
}
}
Для нахождения минимального и максимального элементов и их координаты можно создать две переменные, сохраняющие значения минимума и максимума и две переменные для
сохранения их координат. Использовать вложенный цикл для итерации по элементам массива и для каждого элемента проверять его значение с минимумом и максимумом. Если найдено больше или меньше значение, оно заменяет соответствующую переменную и координаты тоже обновляются
int minValue = int.MaxValue;
int maxValue = int.MinValue;
int minX = -1;
int minY = -1;
int maxX = -1;
int maxY = -1;
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
if (array[i,j] > maxValue)
{
maxValue = array[i,j];
maxX = i;
maxY = j;
}
if (array[i,j] < minValue)
{
minValue = array[i,j];
minX = i;
minY = j;
}
}
}
это не более, чем один из возможных способов решения задачи. Для более эффективного решения можно использовать другой алгоритм.
Answers & Comments
Чтобы найти сумму квадратов элементов двумерного массива, можно использовать вложенный цикл для прохождения по каждому элементу массива и просуммировать квадраты этих элементов:
int sumOfSquares = 0;
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
sumOfSquares += array[i,j] * array[i,j];
}
}
Чтобы найти произведение положительных элементов, можно использовать аналогичный цикл, но при каждой итерации проверять, является ли текущий элемент положительным и если да, умножать его на общее произведение:
int positiveProduct = 1;
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
if (array[i,j] > 0)
positiveProduct *= array[i,j];
}
}
Для нахождения минимального и максимального элементов и их координаты можно создать две переменные, сохраняющие значения минимума и максимума и две переменные для
сохранения их координат. Использовать вложенный цикл для итерации по элементам массива и для каждого элемента проверять его значение с минимумом и максимумом. Если найдено больше или меньше значение, оно заменяет соответствующую переменную и координаты тоже обновляются
int minValue = int.MaxValue;
int maxValue = int.MinValue;
int minX = -1;
int minY = -1;
int maxX = -1;
int maxY = -1;
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
if (array[i,j] > maxValue)
{
maxValue = array[i,j];
maxX = i;
maxY = j;
}
if (array[i,j] < minValue)
{
minValue = array[i,j];
minX = i;
minY = j;
}
}
}
это не более, чем один из возможных способов решения задачи. Для более эффективного решения можно использовать другой алгоритм.