0 / 0 / 0
Регистрация: 03.05.2019
Сообщений: 32
1

Поиск минимального и максимального значения в зубчатом массиве

31.10.2019, 21:51. Показов 9868. Ответов 23
Метки нет (Все метки)

Доброго времени суток!
По условию задачи нужно в зубчатом массиве найти минимальное и максимальное значение. LINQ использовать нельзя.
VS методом обычного прохода по массиву через цикл не даёт приравнять значение min и max элементов.
Как я понял нужно использовать Array.Sort() и в созданные массивы записывать по индексу min и max значения, а после этого уже записывать min и max в переменные для вывода из метода?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2019, 21:51
Ответы с готовыми решениями:

Поиск максимального и минимального значения в массиве: исправить код
Dim Xmax As Double, Xmin As Double, a As Double, b As Double, x As Double, h As Double Private...

Как вывести одинаковые значения элементов в зубчатом массиве?
Например, создан массив массивов. Кол-во массивов вводит пользователь.кол-во элементов им присвоено...

Нахождение минимального и максимального значения в массиве
Уважаемые программисты помогите мне пожалуйста написать программку вот: дана матрица 4 на 4...

Поиск максимального и минимального значения
Помогите, кто понимает в Power Shell 1. нахождения в заданном каталоге файла наибольшего размера...

23
314 / 243 / 149
Регистрация: 03.10.2017
Сообщений: 885
Записей в блоге: 1
31.10.2019, 22:06 2
Что за бред. зачем сортировать чтобы найти минимальный и максимальный элемент?

Добавлено через 4 минуты
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
private static void Calc()
        {
            int[][] matrix = new int[][]
            {
                new int[] {1 },
                new int[]{ 2,3},
                new int[]{ 4,5,6},
                new int[]{7,8,9,10 }
 
            };
 
 
            int min = int.MaxValue, max = int.MinValue;
 
            min = max = matrix[0][0];
 
            for (int i = 0; i < matrix.Length; i++)
            {
                for (int j = 0; j < matrix[i].Length; j++)
                {
                    if (matrix[i][j] > max)
                        max = matrix[i][j];
 
                    if (matrix[i][j] < min)
                        min = matrix[i][j];
                }
            }
            Console.WriteLine($"{min}\n{max}");
 
        }
1
1836 / 1178 / 501
Регистрация: 14.10.2018
Сообщений: 3,179
31.10.2019, 22:10 3
JustMerquer,
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
40
41
42
43
44
45
using System;
 
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int[][] arr =
            {
                new int[] {0, 12, 4 },
                new int[] {4, -2, -5, 92},
                new int[] {6}
            };
 
            int minValue = arr[0][0];
            int maxValue = arr[0][0];
 
            for(int i = 0; i < arr.Length; i++)
            {
                for(int j = 0; j < arr[i].Length; j++)
                {
                    Console.Write($"{arr[i][j],3}");
                }
                Console.WriteLine();
            }
 
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = 0; j < arr[i].Length; j++)
                {
                    if (minValue > arr[i][j])
                        minValue = arr[i][j];
                    if (maxValue < arr[i][j])
                        maxValue = arr[i][j];
                }
            }
 
            Console.WriteLine("Минимальное значение массива: " + minValue);
            Console.WriteLine("Максимальное значение массива: " + maxValue);
 
            Console.ReadKey();
        }
    }
}
1
314 / 243 / 149
Регистрация: 03.10.2017
Сообщений: 885
Записей в блоге: 1
01.11.2019, 17:46 4
Enifan, если в вас первый массив будет пустой, то экзепшн вам обеспечен
0
1836 / 1178 / 501
Регистрация: 14.10.2018
Сообщений: 3,179
01.11.2019, 18:06 5
Masson1848, согласен, но для задачек такого уровня все тонкости не нужны. Это как Int32.Parse() при считывании значений после ввода в консоль. Когда мы решаем задачи при конвертации строки в число, мы же не использует условие ввода (число / не число), не расписываем лютую логику четкой работы программы, и тем не менее ответы с обычным Int32.Parse() являются правильными.
0
0 / 0 / 0
Регистрация: 03.05.2019
Сообщений: 32
01.11.2019, 18:23  [ТС] 6
Цитата Сообщение от Enifan Посмотреть сообщение
согласен, но для задачек такого уровня все тонкости не нужны. Это как Int32.Parse() при считывании значений после ввода в консоль. Когда мы решаем задачи при конвертации строки в число, мы же не использует условие ввода (число / не число), не расписываем лютую логику четкой работы программы, и тем не менее ответы с обычным Int32.Parse() являются правильными.
Тут в задаче ещё условия стоят:
Метод должен возвращать true, если он содержит хотя бы одно числовое значение.
Метод должен пропускать null значения в массиве.
Метод должен выбрасывать исключение ArgumentNullException в случае, если в метод передали null.
В решении разрешается использовать только конструкции языка. Использовать LINQ запрещено.
0
1836 / 1178 / 501
Регистрация: 14.10.2018
Сообщений: 3,179
01.11.2019, 18:28 7
JustMerquer, а это уже другая задача, даже тип данных другой используется.
0
349 / 244 / 76
Регистрация: 18.03.2016
Сообщений: 979
01.11.2019, 18:48 8
JustMerquer, а где твои попытки что то сделать? Почитай про зубчатые массивы и доделай.

Добавлено через 1 минуту
JustMerquer,
Метод должен выбрасывать исключение ArgumentNullException в случае, если в метод передали null.
можно открыть метанит и посмотреть как это делается в две строки
0
0 / 0 / 0
Регистрация: 03.05.2019
Сообщений: 32
01.11.2019, 19:33  [ТС] 9
jester
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
 min = int.MinValue;
        max = int.MaxValue;
        min = array[0][0];
        max = array[0][0];
        bool status = false;
        try
        {
            if (array == null)
            {
                min = 0;
                max = 0;
                status = false;
            }
            else
            {
                for (int i = 0; i < array.Length; i++)
                {
                    for (int j = 0; j < array[i].Length; j++)
                    {
                        if (array[i][j] > max)
                            max = array[i][j];
                        if (array[i][j] < min)
                            min = array[i][j];
                        Console.WriteLine(max);
                    }
                }
            }
           
        }
        catch(ArgumentNullException ex )
        {
            Console.WriteLine(ex.Message);
        }
Вот примерно так на данный момент выглядит код метода
0
349 / 244 / 76
Регистрация: 18.03.2016
Сообщений: 979
01.11.2019, 19:41 10
JustMerquer,

Цитата Сообщение от Masson1848 Посмотреть сообщение
Enifan, если в вас первый массив будет пустой, то экзепшн вам обеспечен
Цитата Сообщение от JustMerquer Посмотреть сообщение
Метод должен выбрасывать исключение ArgumentNullException в случае, если в метод передали null.
тут сказано выбрасывать а не отлавливать.
C#
1
2
3
4
            if (array == null)
            {
                      throw new ArgumentException();
            }
Цитата Сообщение от JustMerquer Посмотреть сообщение
Метод должен пропускать null значения в массиве.
нет этой проверки в данном коде
0
314 / 243 / 149
Регистрация: 03.10.2017
Сообщений: 885
Записей в блоге: 1
01.11.2019, 19:56 11
jester, также не учитываете array[0]==null;
0
349 / 244 / 76
Регистрация: 18.03.2016
Сообщений: 979
01.11.2019, 20:00 12
Masson1848, в смысле? Если массива нет тогда исключение.
0
1836 / 1178 / 501
Регистрация: 14.10.2018
Сообщений: 3,179
01.11.2019, 20:15 13
jester, исключение - когда в метод передали null, чего не видно в коде. А что именно должно сравниваться с null'ом ? массив ? какое то число? может быть объект? или все вместе ?
0
349 / 244 / 76
Регистрация: 18.03.2016
Сообщений: 979
01.11.2019, 20:26 14
Enifan, всё что может быть null и вызывать исключения надо проверять.
0
314 / 243 / 149
Регистрация: 03.10.2017
Сообщений: 885
Записей в блоге: 1
01.11.2019, 20:42 15
jester, а ещё массив массивов может быть пустой
Или 1 массив из массивов может быть пустой
0
0 / 0 / 0
Регистрация: 03.05.2019
Сообщений: 32
01.11.2019, 20:55  [ТС] 16
jester, а в чём разница между выбрасыванием исключений и отлавливанием?
0
314 / 243 / 149
Регистрация: 03.10.2017
Сообщений: 885
Записей в блоге: 1
01.11.2019, 21:04 17
JustMerquer, примерно та же разница. Ловить мяч или бросать мяч
0
0 / 0 / 0
Регистрация: 03.05.2019
Сообщений: 32
01.11.2019, 21:30  [ТС] 18
Masson1848, а можно различия в виде кода?
Блок catch нужно оставлять пустым?
0
349 / 244 / 76
Регистрация: 18.03.2016
Сообщений: 979
01.11.2019, 21:42 19
JustMerquer,
Цитата Сообщение от JustMerquer Посмотреть сообщение
а можно различия в виде кода?
я тебе показал как

Masson1848, да я в курсе.

Цитата Сообщение от Masson1848 Посмотреть сообщение
а ещё массив массивов может быть пустой
Цитата Сообщение от jester Посмотреть сообщение
C#
1
2
3
4
if (array == null)
* * * * * * {
* * * * * * * * * * * throw new ArgumentException();
* * * * * * }
если он пустой то и массивов подмассивов нет

и про подмассивы я сказал тоже

Цитата Сообщение от jester Посмотреть сообщение
Цитата Сообщение от JustMerquer Посмотреть сообщение
Метод должен пропускать null значения в массиве.
нет этой проверки в данном коде
0
3316 / 2364 / 1145
Регистрация: 14.08.2016
Сообщений: 7,984
01.11.2019, 21:48 20
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace CyberForum
{
 
    class Program
    {
        static bool MinMax(int[][] array, out int min, out int max)
        {
            bool state = false;
            min = int.MaxValue;
            max = int.MinValue;
            if (array == null)
                throw new ArgumentNullException("oO");
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == null)
                    continue;
                for (int j = 0; j < array[i].Length; j++)
                {
 
                    state = true;
                    if (array[i][j] < min)
                        min = array[i][j];
                    if (array[i][j] > max)
                        max = array[i][j];
                }
            }
            return state;
        }
        static void Main(string[] args)
        {
            int[][] arr =
            {
                new int[] {0, 12, 4 },
                new int[] {4, -2, -5, 92},
                new int[] {6}
            };
            int min, max;
            if (MinMax(arr, out min, out max))
                Console.WriteLine($"min = {min}, max = {max}");
            arr[1] = null;
            if (MinMax(arr, out min, out max))
                Console.WriteLine($"min = {min}, max = {max}");
            try
            {
                arr = null;
                if (MinMax(arr, out min, out max))
                    Console.WriteLine($"min = {min}, max = {max}");
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine(e.ToString());
            }
            Console.WriteLine("done");
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2019, 21:48
Помогаю со студенческими работами здесь

Поиск минимального и максимального значения
Здравствуйте, перерыл гугл и не смог найти решения. У меня есть 2 столбца, в одном имя параметра в...

Поиск максимального/минимального элемента в массиве
Данная матрица размера m * n. Найти 1. минимальный 2. максимальный среди 1)...

Поиск максимального и минимального элемента в массиве
Помогите отредактировать программу. Задание: Ввести двумерный массив, найти индексы и значения...

Поиск максимального и минимального элемента в массиве
Как найти максимальный и минимальный элемент в одномерном массиве


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru