Определить номер столбца содержащий наименьший элемент матрицы через массив - C#

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

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

Определить номер столбца содержащий наименьший элемент матрицы через массив

Решение задачи: «Определить номер столбца содержащий наименьший элемент матрицы через массив»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите размерность матрицы (Количество строк, затем количество столбцов).");
            int n = 0, m = 0;
 
            while (n <= 0 || m <= 0)
            {
                Console.WriteLine("n, m > 0 !!!");
                n = int.Parse(Console.ReadLine());
                m = int.Parse(Console.ReadLine());
            }
 
            //Инициализировали матрицу и задали занчения.
 
            int[,] matrix = new int[n,m];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < m; ++j)
                {
                    Console.WriteLine("Введите [{0},{1}] элемент", i+1, j+1);
                    matrix[i, j] = int.Parse(Console.ReadLine());
                }
 
            int[] min_col_count = SerchColMinElem(matrix, n, m);
 
            Console.WriteLine("Наименьший элемент(ы) встречен(ы) в столбце(столбцах): ");
            for (int i = 0; i < min_col_count.Length; ++i)
                Console.WriteLine(min_col_count[i].ToString() + " ");
 
            Console.ReadKey();
        }
 
 
        static int[] SerchColMinElem(int[,] matrix, int n, int m)
        {
            int temp_min = matrix[0,0];
            int count = 0;
            int[] min_count_col = new int[1];
 
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < m; ++j)
                    if (matrix[i, j] < temp_min)
                    {
                        temp_min = matrix[i, j];
                        min_count_col[count] = j;
                    }
                    else
                        if (matrix[i, j] == temp_min)
                        {
                            bool this_col_is_present = false;
 
                            for (int k = 0; k < min_count_col.Length; ++k)
                                if (j == min_count_col[k])
                                {
                                    this_col_is_present = true;
                                    break;
                                }
 
                            if (this_col_is_present)
                                continue;
                            else
                            {
                                count++;
                                Array.Resize(ref min_count_col, count + 1);
                                min_count_col[count] = j;
                            }
                        }
            return min_count_col;
        }

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


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

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

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