массив 6X4. определить разность между min и max элемент в каждой строке
Помогите советом. Написал программу, но не знаю как должен продолжить.
Массив 6x4, заполнил рандомом, а дальше не понимаю что делать.
int[,] a = new int[6, 4];
Random random = new Random();
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 4; j++)
{
a[i, j] = random.Next(100);
Console.Write("{0,5}", a[i, j]);
}
Console.WriteLine();
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Если по-простому, то начать с первого элемента в каждой строке, далее каждый последующий элемент сравнивать отдельно с минимумом и с максимумом, и обновлять минимум и максимум, если меньше или больше.
int[,] a = new int[6, 4];
Random random = new Random();
// лучше использовать реальный размер массива, потому что если поменяете размер массива,
// вам придется править код сразу в нескольких местах, а это неудобно
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
a[i, j] = random.Next(100);
Console.Write("{0,3}", a[i, j]);
}
Console.WriteLine();
}
for (int i = 0; i < a.GetLength(0); i++)
{
int min = a[i, 0];
int max = a[i, 0];
for (int j = 1; j < a.GetLength(1); j++)
{
if (a[i, j] < min)
min = a[i, j];
if (a[i, j] > max)
max = a[i, j];
}
Console.WriteLine(max - min);
}
Вывод в консоль.
23 63 47 32
51 79 36 23
82 40 60 8
69 92 22 91
92 91 86 18
26 47 70 23
40
56
74
70
74
47
Ради развлечения, вот Linq вариант
Console.WriteLine(string.Join(Environment.NewLine, Enumerable.Range(0, a.GetLength(0)).Select(i =>
Enumerable.Range(0, a.GetLength(1)).Select(j => a[i, j]).Max() -
Enumerable.Range(0, a.GetLength(1)).Select(j => a[i, j]).Min()
)));