Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 7
1

Рекурсивная функция поиска минимального элемента в двумерном массиве

27.05.2015, 21:34. Просмотров 1267. Ответов 6
Метки нет (Все метки)

помогите пожалуйста написать рекурсивную функцию которая находит минимальный элемент в матрице (двумерном массиве)
задачка в C# WindowsFormsApplication

Добавлено через 59 минут
актуально
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2015, 21:34
Ответы с готовыми решениями:

Рекурсивная функция: нахождение минимального элемента массива
Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент...

Рекурсивная функция нахождения максимального элемента одномерного массива
Помогите пожалуйста. Что я делаю не так? Мне нужно написать рекурсивную функцию нахождения...

Поиск элемента в двумерном массиве
Здравствуйте всем! У меня вопрос по поводу двумерных массивов. И так мне нужно найти такой...

Рекурсивная функция, подсчитывающая количество вхождений элемента с информационным полем b в список r
11. Описать рекурсивную функцию function nmemb(r: link; b:integer):integer; подсчитывающую...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
6
968 / 863 / 349
Регистрация: 26.04.2012
Сообщений: 2,648
27.05.2015, 22:44 2
Делать такие вещи рекурсией-это извращение еще то по-моему... приходит в голову разве что как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication26
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr = new int[3, 4] { { -99997, 2, 4, 67 }, { 3, -6, -4, 77 }, { -95, 6, -99, -9990 }};
            Console.WriteLine(recursivemin(arr, 0, Int32.MaxValue).ToString());
            Console.ReadKey();
        }
        private static int recursivemin(int[,] arr, int pos, int currentmin)
        {
            if (pos >= arr.GetLength(0) * arr.GetLength(1))
            {
                return currentmin;
            }
            if (arr[pos % arr.GetLength(0),pos / arr.GetLength(0)] < currentmin) 
            {
                currentmin = arr[pos % arr.GetLength(0),pos / arr.GetLength(0)]; 
            }
            pos++;
            return recursivemin(arr, pos, currentmin);
        }
    }
}
Но никто в своем уме такого не напишет для реального использования..
Как на форме разместить думаю придумаете
1
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 7
27.05.2015, 22:47  [ТС] 3
это круто, а в можно не через консольное приложение, а WindowsFormsApplication?)
0
968 / 863 / 349
Регистрация: 26.04.2012
Сообщений: 2,648
27.05.2015, 22:51 4
Ну сам рекурсивный метод от этого ничуть не изменится, просто результат выводите в лейбл/текстбокс/кнопку/месаджбокс еще еще куда по вашему усмотрению
1
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 7
27.05.2015, 23:06  [ТС] 5
ну, допустим в текстбокс через буттон)
0
968 / 863 / 349
Регистрация: 26.04.2012
Сообщений: 2,648
27.05.2015, 23:23 6
Лучший ответ Сообщение было отмечено donnb как решение

Решение

ну, допустим в текстбокс через буттон)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication36
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int[,] arr = new int[3, 4] { { -99997, 2, 4, 67 }, { 3, -6, -4, 77 }, { -95, 6, -99, -9990 } };
            textBox1.Text = recursivemin(arr, 0, Int32.MaxValue).ToString();
        }
        private static int recursivemin(int[,] arr, int pos, int currentmin)
        {
            if (pos >= arr.GetLength(0) * arr.GetLength(1))
            {
                return currentmin;
            }
            if (arr[pos % arr.GetLength(0), pos / arr.GetLength(0)] < currentmin)
            {
                currentmin = arr[pos % arr.GetLength(0), pos / arr.GetLength(0)];
            }
            pos++;
            return recursivemin(arr, pos, currentmin);
        }
    }
}
Хотя конечно это можно было и самому догадаться Еще массив возможно стоит вводить как-нибудь по-другому..
Какой-нибудь там DataGridView или что-то в этом духе
1
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 7
27.05.2015, 23:28  [ТС] 7
"Хотя конечно это можно было и самому догадаться", на то и ник у меня донный, что не догадался)
спасибо большое за помощь)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2015, 23:28

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Рекурсивная функция, которая вычисляет произведение до первого нулевого элемента массива
Разработать рекурсивную функцию int recSumma(int a, int n), которая...

Поиск повторного элемента в двумерном массиве
Здравствуйте уважаемые форумчане! У меня появился новый вопрос о двумерном массиве - задача...

Тройной поиск элемента в двумерном массиве
Привет уважаемым форумчанам )! Допустим у меня есть упорядоченный массив из 24 элементов, я хочу...

Поиск минимального элемента массива с помощью бинарного и линейного поиска
Помогите пожалуйста. Нужно реализовать способ поиска минимального элемента в одномерном массиве с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.