13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131

Нахождение минимального и максимального значения в двумерном массиве

17.10.2016, 00:26. Показов 20552. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пользователь вводит двумерный квадратный массив n x n. Далее необходимо найти минимальное значение первой строки и минимальное значение первого столбца. Затем нужно заполнить одномерный массив остатками от деления минимального элемента на наибольшее значение. Вот код:
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
#include <iostream>
 
 
using namespace std;
int main()
{
    int i, j; //для использования итетации в циклах
    int n;
 
    cout << "Please, enter the size of matrix: ";   
 
    cin >> n;
    int arr[10][10];
 
    cout << "Enter the matrix: " << endl;
 
    for (i = 0; i < n; i++) { //Заполняем массив
 
        for (j = 0; j < n; j++)
        {
            cin >> arr[i][j];
        }
    }
 
    int min_arr = 0;
    int max_arr = 0;
 
    for (i = 0; i < 1; i++) //i-ный столбец
    {
        for (j = 0; j < n; j++) //i-ная строка
        {
            if (arr[i][j] > max_arr) // находим найименьшое значение в i-строке
                max_arr = arr[i][j];
        }
    }
    for (i = 0; i < n; i++) // находим наименьшее значение в i-столбце
    {
        
        if (arr[i][j] < min_arr)
            min_arr = arr[i][j];
        for (j = 0; j < 1; j++)
        {
        }
    }
 
    int arr_b[100];
 
    for (i = 0; min_arr > 1; i++)
    {
        arr_b[i] = (min_arr % max_arr);
    }
 
 
    for (i = 0; i < n; i++) {   //Выводим получившуюся матрицу.
        
        cout << arr_b[i];
        cout << endl;
    }
 
    system("pause");
    return 0;
}
Но он не работает. В результате выдает какие то отрицательные значения:
-858993460
-858993460

В чем моя ошибка?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2016, 00:26
Ответы с готовыми решениями:

Функция для нахождение минимального значения каждого столбца в двумерном массиве
Как создать функцию, код, который в строчках 41 - 55 Спасибо заранее!!! #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

В двумерном массиве вывести индексы максимального и минимального элемента
В двумерном массиве вывести индексы максимального и минимального элемента, а также расположить элементы второго столбца в порядке убывания

В двумерном массиве определить для каждого столбца сумму минимального и максимального элементов
Дан двумерный массив из 5 строк и 6 столбцов. Определить для каждого столбца массива сумму минимального и максимального элементов. Найти...

8
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
17.10.2016, 00:53
Цитата Сообщение от neketsh Посмотреть сообщение
Далее необходимо найти минимальное значение первой строки и минимальное значение
может быть максимальное где то? или в обоих случаях минимальное?
0
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131
17.10.2016, 01:03  [ТС]
_SayHelli, ой, да. В столбце - минимальное, с строке - максимальное. Мозг не думает уже .-.

Добавлено через 6 минут
Немного отредактировал нахождение минимального числа. Подумав, добавил вначале поиск максимального, т.к. изначально же min_arr равен 0. Но всеравно результат тот же.
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
64
#include <iostream>
 
 
using namespace std;
int main()
{
    int i, j; //для использования итетации в циклах
    int n;
 
    cout << "Please, enter the size of matrix: ";
 
    cin >> n;
    int arr[10][10];
 
    cout << "Enter the matrix: " << endl;
 
    for (i = 0; i < n; i++) { //Заполняем массив
        cout << "Enter: ";
        for (j = 0; j < n; j++)
        {
            cin >> arr[i][j];
        }
    }
 
    int min_arr = 0;
    int max_arr = 0;
 
    for (i = 0; i < 1; i++) //i-ный столбец
    {
        for (j = 0; j < n; j++) //i-ная строка
        {
            if (arr[i][j] > max_arr) // находим найбольшее значение в i-строке
                max_arr = arr[i][j];
        }
    }
 
    for (i = 0; i < n; i++) // находим наибольшее значение в i-столбце, что бы сравнивать
    {
        if (arr[i][j] > min_arr)
            min_arr = arr[i][j];
    }
 
    for (i = 0; i < n; i++) // находим наименьшее значение в i-столбце
    {
        if (arr[i][j] < min_arr)
            min_arr = arr[i][j];
    }
    int arr_b[100];
 
    for (i = 0; min_arr > 1; i++)
    {
        arr_b[i] = (min_arr % max_arr);
    }
 
 
    for (i = 0; i < n; i++) {   //Выводим получившуюся матрицу.
 
        cout << arr_b[i];
        cout << endl;
    }
 
    system("pause");
    return 0;
}
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
17.10.2016, 01:09
neketsh,
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
64
65
66
67
68
69
#include <iostream>
 
 
using namespace std;
int main()
{
 //для использования итетации в циклах
    int n;
 
    cout << "Please, enter the size of matrix: ";
 
    cin >> n;
    int arr[10][10];
 
    cout << "Enter the matrix: " << endl;
 
    for (int i = 0; i < n; i++) { //Заполняем массив
 
        for (int j = 0; j < n; j++)
        {
            cin >> arr[i][j];
        }
    }
    cout << "Matrix:" << endl;
    for (int i = 0; i < n; i++) {
 
        for (int j = 0; j < n; j++)
        {
            cout <<  arr[i][j] << " ";
        }
        cout << endl;
    }
    int min_arr = arr[0][0];
    int max_arr = arr[0][0];
 
 
    for (int j = 0; j < n; j++) //i-ная строка
        {
            int i = 0;
            max_arr = arr[i][j];
            if (arr[i][j] >= max_arr) // находим найименьшое значение в i-строке
                max_arr = arr[i][j];
        }
    for (int i = 0; i < n; i++) // находим наименьшее значение в i-столбце
    {
        int j = 0;
        if (arr[i][j] <= min_arr)
            min_arr = arr[i][j];
    }
    cout << "minimum at first column = "<< min_arr << endl;
    cout << "maximum at first row = "<< max_arr << endl;
 
    int arr_b[100];
 
    for (int i = 0; i < n; i++)
    {
        arr_b[i] = (min_arr % max_arr);
    }
 
 
    for (int i = 0; i < n; i++) {   //Выводим получившуюся матрицу.
 
        cout << arr_b[i];
        cout << endl;
    }
    
    system("pause");
    return 0;
}
Добавлено через 4 минуты
neketsh, объявляй i и j внутри циклов, а то во тут
C++
1
2
3
4
5
6
7
8
9
    for (i = 0; i < n; i++) // находим наименьшее значение в i-столбце
    {
        
        if (arr[i][j] < min_arr)
            min_arr = arr[i][j];
        for (j = 0; j < 1; j++)
        {
        }
    }
У тебя значение j для элемента не 0 будет, а останется с прошлого цикла (на первой итерации).
изначально минимальному и максимальному элементу надо присваивать не 0 а значения первых элементов массива, где ты сортировку проводишь. Потому как если ты возьмешь 0 и будешь проверять на меньшее значение то у тебя на выходе так и окажется 0, хотя нулей в массиве может и не быть. У тебя видимо где то деление на 0 и получилось.
1
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131
17.10.2016, 01:19  [ТС]
_SayHelli, у меня не работает так как надо.
Да и тут:
C++
1
2
3
4
[quote="_SayHelli;9653800"]for (int i = 0; i < n; i++)
* * {
* * * * arr_b[i] = (min_arr % max_arr);
* * }[/quote]
n же будет равен, например 2, которые мы ввели в начале. Т.е. могут остаться числа от деления, которые программа не учтет.
Да и не работает как надо почему то. Например при значениях min_arr = 124, max_arr = 253 выводит
124
124
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
17.10.2016, 01:29
neketsh, я как раз тут не очень понял задания. Мы получили значения min и max, а дальше надо весь массив забить остатками от их деления? То есть по сути одним числом. у вас остаток от деления 124%253 = 124 все правильно. Или как нужно сделать?
1
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131
17.10.2016, 01:38  [ТС]
_SayHelli, Я сам не понимаю половину из того, что просит от нас препод, но вроде да. Но кажется я опять ошибся. Чертов недостаток сна. Надо остатками от деления минимального на максимальное
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
17.10.2016, 01:41
Лучший ответ Сообщение было отмечено neketsh как решение

Решение

neketsh, ну забейте его целиком
C++
1
2
3
4
    for (int i = 0; i < sizeof(arr_b); i++)
    {
        arr_b[i] = (min_arr % max_arr);
    }
1
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131
17.10.2016, 01:43  [ТС]
_SayHelli, все, спасибо огромное!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2016, 01:43
Помогаю со студенческими работами здесь

Определить месторасположение последнего минимального значения в двумерном массиве
Всем здравствуйте! Есть задачка: Задан двумерный массив целых чисел. Напишите программу, которая определяет месторасположение...

Найти сумму максимального значения элементов с четными индексами и минимального значения элементов с нечетными индексами в одномерном массиве
дан одномерный массив А.найти мах(a2,a4..)+мин(a1,a3) int main() { int y; cin&gt;&gt;N; for(int i=0; i&lt;N; i++) cin&gt;&gt;y; max=y;...

Найти среднее арифметическое максимального отрицательного и минимального положительного элемента в двумерном
Найти среднее арифметическое максимального отрицательного и минимального положительного элемента в в двумерном массиве Называйте темы...

Нахождение максимального и минимального числа
Здравствуйте. Помогите найти максимальное и минимальное число #include &lt;iostream&gt; using namespace std; int main() { ...

Матрицы,нахождение максимального и минимального элемента
Здравствуйте!Помогите пожалуйста с программой,по условию нужно найти максимальный и минимальный элемент матрицы и разместить их на первом и...


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

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

Новые блоги и статьи
Динамические массивы в C++ - создание и использование
NullReferenced 27.04.2025
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения. . .
Асинхронный JavaScript: Промисы, Async/Await и Fetch API
Reangularity 27.04.2025
Пользователь заходит на веб-страницу, нажимает кнопку и. . . ничего не происходит. Сайт словно замер. Через несколько секунд всё внезапно оживает, но пользователь уже успел закрыть вкладку. Знакомая. . .
Management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru