Визначити номери рядків матриці, що містять хоча б один нульовий елемент
using System; using System.Collections.Generic; class Program { static void Main() { // все методы с именем MyMethod перегружены const int count = 7; const int i = 0; Console.WriteLine("Исходная матрица"); int[,] origin = MyMethod(count); Console.WriteLine("Номера строк (начиная с нуля), содержащих хотя бы один нулевой элемент"); int[] mas = MyMethod(origin, count); foreach (int item in mas) Console.WriteLine(item); Console.WriteLine(@"Номер первого столбца, в котором находится самая длинная серия одинаковых элементов (счет ведется с нуля) ->> {0}", MyMethod(origin, count, i)); Console.ReadKey(); } static int[,] MyMethod(int size) { Random r = new Random(); int[,] mas = new int[size, size]; for (int i = 0; i < size; ++i) { for (int j = 0; j < size; ++j) { mas[i, j] = r.Next(-9, 10); if (mas[i, j] < 0) Console.Write(" " + mas[i, j]); else Console.Write(" " + mas[i, j]); } Console.WriteLine("\n"); } return mas; } static int[] MyMethod(int[,] mas, int size) { List<int> ls = new List<int>(); for (int i = 0; i < size; ++i) { for (int j = 0; j < size; ++j) { if (mas[i, j] == 0) { if (!ls.Contains(i)) ls.Add(i); } } } int[] countStr = ls.ToArray(); return countStr; } static int MyMethod(int[,] mas, int size, int a) { int number = 0, max = 0; ; int[] temp = new int[size]; for (int i = 0; i < size; ++i) { int count = a; for (int j = 0; j < size; ++j) { temp[j] = mas[j, i]; if (j < size - 1 && mas[j, i] == mas[j + 1, i]) { count++; if (count > max) { max = count; number = i; } } else count = 0; } } return number; } }
Комментариев нет:
Отправить комментарий