Работа с матрицей (двумерным массивом) - C#
Формулировка задачи:
Задача такая, дан нам этот массив(мы сами вводим его как столбцы, так и строки), надо найти особые числа, это те у которых пред идущий элемент меньше, а последующий больше их и в СТОЛБЦЕ он самый большой...
Сделал все до места где надо написать алгоритм по которому особое число будет находиться, можете с ним помочь? я не понимаю его. Ниже код
Листинг программы
- static void Main(string[] args)
- {
- Console.WriteLine("Введите сколько строк будет в матрице");
- int N = Convert.ToInt32(Console.ReadLine()); // ввод строк
- Console.WriteLine("Введите сколько столбцов будет в матрице");
- int M = Convert.ToInt32(Console.ReadLine()); // ввод столбцов
- int[,] mass = new int[N, M]; // создание массива
- for (int i = 0; i < N; i++) //цикл по строкам // цикл записывания в матрицу чисел
- for (int j = 0; j < M; j++) //цикл по столбцам
- {
- Console.Write("Введите элемент матрицы ({0},{1}) ", i + 1, j + 1);
- mass[i, j] = Convert.ToInt32(Console.ReadLine());
- }
- int spec4is = 0; // переменная куда будет записываться сколько у нас таких чисел
- {
- */ Вот тут надо написать, код, но что я не пробовал ничего не работает, подскажите как решить задачу*/
- }
- Console.WriteLine("\nВсего особых элементов: {0}", spec_sym);
- Console.ReadLine();
Решение задачи: «Работа с матрицей (двумерным массивом)»
textual
Листинг программы
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Введите сколько строк будет в матрице");
- int N = Convert.ToInt32(Console.ReadLine()); // ввод строк
- Console.WriteLine("Введите сколько столбцов будет в матрице");
- int M = Convert.ToInt32(Console.ReadLine()); // ввод столбцов
- int[,] mass = new int[N, M]; // создание массива
- for (int i = 0; i < N; i++) //цикл по строкам // цикл записывания в матрицу чисел
- for (int j = 0; j < M; j++) //цикл по столбцам
- {
- Console.Write("Введите элемент матрицы ({0},{1}) ", i + 1, j + 1);
- mass[i, j] = Convert.ToInt32(Console.ReadLine());
- }
- PrintSpecialNumbers(mass);
- Console.ReadLine();
- }
- static void PrintSpecialNumbers(int[,] matrix)
- {
- int count = 0;
- for (int x = 1; x < matrix.GetLength(1) - 1; ++x)
- {
- int max = GetMaxInColumn(matrix, x);
- for (int y = 0; y < matrix.GetLength(0); ++y)
- if (max == matrix[y, x] && matrix[y, x] > matrix[y, x - 1] && matrix[y, x] < matrix[y, x + 1])
- {
- Console.WriteLine("M[{0}, {1}] = {2}", y, x, matrix[y, x]);
- ++count;
- }
- }
- Console.WriteLine("\nВсего особых элементов: {0}", count);
- }
- static int GetMaxInColumn(int[,] matrix, int column)
- {
- int max = int.MinValue;
- for (int i = 0; i < matrix.GetLength(0); ++i)
- max = Math.Max(max, matrix[i, column]);
- return max;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д