Если i и j стоят ДО мин числа – вывести их в mas[i]
Элементы в двумерном массиве(arr) которые расположены ДО минимального числа (int min = int.MaxValue;) – нужно переписать в отдельный одномерный массив (mas) и сортировать по возростанию чисел. У меня mas[i] выводится с кучей нулей .
using System;
using static System.Console;
using static System.Array;
namespace ConsoleApp4
{
class Program
{
static void z3(int[,] arr)
{
int min = int.MaxValue;
int m_i = 0, m_j = 0;
int [] mas = new int [100];
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (arr[i, j] < min)
{
min = arr[i, j];
m_i = i;
m_j = j;
}
}
}
WriteLine("min = " + min + "\n m_i = " + m_i + "\n m_j = " + m_j);
int k = 0;
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (i == m_i && j == m_j)
{
break;
}
else
{
mas[k] = arr[i, j];
k++;
}
}
}
WriteLine();
WriteLine();
WriteLine();
for (int i1 = 0; i1 < mas.Length; i1++)
{
Write(mas[i1] + "\t");
}
WriteLine();
Sort(mas);
for (int i1 = 0; i1 < mas.Length; i1++)
{
Write(mas[i1] + "\t");
}
WriteLine();
}
static void Main(string[] args)
{
Write("Введите ширину массива: ");
int M = int.Parse(ReadLine());
Write("Введите длинну массива: ");
int N = int.Parse(ReadLine());
Write("Введите диапазон массива: ");
Write("\n\tВведите минимальное число: ");
int A = int.Parse(ReadLine());
Write("\n\tВведите максимальное число: ");
int B = int.Parse(ReadLine());
int[,] arr = new int[M, N];
Random a = new Random();
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
arr[i,j] = a.Next(A, B);
}
}
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Write("\t" + arr[i,j]);
}
WriteLine();
}
z3(arr);
}
}
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
int[] mas = new int[arr.GetLength(1) * m_i + m_j];
for (int i = 0; i <= m_i; i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (i == m_i && j == m_j)
break;
...
