Работа с матрицей (двумерным массивом) - 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;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы