using System;
class Program
{
static void Main()
{
// 1. Ввод размеров
Console.Write("Введите количество строк (n): ");
int n = int.Parse(Console.ReadLine());
Console.Write("Введите количество столбцов (m): ");
int m = int.Parse(Console.ReadLine());
// 2. Создаем матрицу с помощью метода
int[,] matrixA = InputMatrix(n, m);
// 3. Формируем массив B с помощью метода
int[] arrayB = FindFirstNegatives(matrixA, n, m);
// 4. Выводим результат с помощью метода
Console.WriteLine("\nМассив B (номера первых отрицательных элементов):");
PrintArray(arrayB);
Console.ReadKey();
}
// --- МЕТОД 1: Ввод матрицы ---
// Принимает размеры, возвращает заполненный двумерный массив
static int[,] InputMatrix(int rows, int cols)
{
int[,] matrix = new int[rows, cols];
Console.WriteLine("\nВведите элементы матрицы (по одному числу на строку):");
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
Console.Write($"A[{i},{j}] = ");
matrix[i, j] = int.Parse(Console.ReadLine());
}
}
return matrix;
}
// --- МЕТОД 2: Обработка матрицы ---
// Принимает матрицу и её размеры, возвращает готовый массив B
static int[] FindFirstNegatives(int[,] matrix, int rows, int cols)
{
int[] result = new int[rows];
for (int i = 0; i < rows; i++)
{
result[i] = 0; // По умолчанию 0 (нет отрицательных)
for (int j = 0; j < cols; j++)
{
if (matrix[i, j] < 0)
{
result[i] = j + 1; // Записываем номер (счет с 1)
break; // Выходим, так как нужен только ПЕРВЫЙ отрицательный
}
}
}
return result;
}
// --- МЕТОД 3: Вывод одномерного массива ---
// Принимает массив и просто печатает его на экран
static void PrintArray(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
Console.Write(array[i] + " ");
}
Console.WriteLine();
}
}