Работа с матрицей (двумерным массивом) - C#

Узнай цену своей работы

Формулировка задачи:

Задача такая, дан нам этот массив(мы сами вводим его как столбцы, так и строки), надо найти особые числа, это те у которых пред идущий элемент меньше, а последующий больше их и в СТОЛБЦЕ он самый большой... Сделал все до места где надо написать алгоритм по которому особое число будет находиться, можете с ним помочь? я не понимаю его. Ниже код
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. Console.WriteLine("Введите сколько строк будет в матрице");
  4. int N = Convert.ToInt32(Console.ReadLine()); // ввод строк
  5. Console.WriteLine("Введите сколько столбцов будет в матрице");
  6. int M = Convert.ToInt32(Console.ReadLine()); // ввод столбцов
  7. int[,] mass = new int[N, M]; // создание массива
  8. for (int i = 0; i < N; i++) //цикл по строкам // цикл записывания в матрицу чисел
  9. for (int j = 0; j < M; j++) //цикл по столбцам
  10. {
  11. Console.Write("Введите элемент матрицы ({0},{1}) ", i + 1, j + 1);
  12. mass[i, j] = Convert.ToInt32(Console.ReadLine());
  13. }
  14. int spec4is = 0; // переменная куда будет записываться сколько у нас таких чисел
  15. {
  16. */ Вот тут надо написать, код, но что я не пробовал ничего не работает, подскажите как решить задачу*/
  17. }
  18. Console.WriteLine("\nВсего особых элементов: {0}", spec_sym);
  19. Console.ReadLine();

Решение задачи: «Работа с матрицей (двумерным массивом)»

textual
Листинг программы
  1. using System;
  2.  
  3. class Program
  4. {
  5.     static void Main(string[] args)
  6.     {
  7.         Console.WriteLine("Введите сколько строк будет в матрице");
  8.         int N = Convert.ToInt32(Console.ReadLine()); // ввод строк
  9.         Console.WriteLine("Введите сколько столбцов будет в матрице");
  10.         int M = Convert.ToInt32(Console.ReadLine()); // ввод столбцов
  11.         int[,] mass = new int[N, M]; // создание массива
  12.         for (int i = 0; i < N; i++) //цикл по строкам // цикл записывания в матрицу чисел
  13.  
  14.             for (int j = 0; j < M; j++) //цикл по столбцам
  15.             {
  16.                 Console.Write("Введите элемент матрицы ({0},{1}) ", i + 1, j + 1);
  17.                 mass[i, j] = Convert.ToInt32(Console.ReadLine());
  18.             }
  19.         PrintSpecialNumbers(mass);
  20.         Console.ReadLine();
  21.     }
  22.  
  23.     static void PrintSpecialNumbers(int[,] matrix)
  24.     {
  25.         int count = 0;
  26.         for (int x = 1; x < matrix.GetLength(1) - 1; ++x)
  27.         {
  28.             int max = GetMaxInColumn(matrix, x);
  29.             for (int y = 0; y < matrix.GetLength(0); ++y)
  30.                 if (max == matrix[y, x] && matrix[y, x] > matrix[y, x - 1] && matrix[y, x] < matrix[y, x + 1])
  31.                 {
  32.                     Console.WriteLine("M[{0}, {1}] = {2}", y, x, matrix[y, x]);
  33.                     ++count;
  34.                 }
  35.         }
  36.         Console.WriteLine("\nВсего особых элементов: {0}", count);
  37.     }
  38.  
  39.     static int GetMaxInColumn(int[,] matrix, int column)
  40.     {
  41.         int max = int.MinValue;
  42.         for (int i = 0; i < matrix.GetLength(0); ++i)
  43.             max = Math.Max(max, matrix[i, column]);
  44.         return max;
  45.     }
  46. }

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


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

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

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы