Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anastasya 1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 16
#1

Подсчитать количество локальных минимумов заданной матрицы - C++

29.12.2016, 10:29. Просмотров 422. Ответов 13
Метки нет (Все метки)

Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы.
Помогите пожалуйста написать программу.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2016, 10:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Подсчитать количество локальных минимумов заданной матрицы (C++):

Подсчитать количество локальных минимумов заданной матрицы - C++
Ребят помогите решить задачу. Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него...

Подсчитать количество локальных минимумов заданной матрицы - C++
задание : подсчитать количество локальных минимумов заданной матрицы размером NxN.найти сумму модулей элементов,расположенных выше...

Подсчитать количество локальных минимумов заданной матрицы - C++
Помогите пожалуйста решить задачку =) Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него...

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

Подсчитать количество локальных минимумов заданной матрицы - C++
Приветик всем!!! Мне тут подружка принесла задание с котрым я не могу справится,надо написать прогрмку на С++ Помогите...

Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10 - C++
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных...

13
JIawliet
78 / 78 / 19
Регистрация: 20.07.2016
Сообщений: 327
Завершенные тесты: 2
29.12.2016, 10:35 #2
Anastasya 1, уточните пожалуйста, что какой элемент является "соседом"? Только боковые (слева справа)? Боковые и верхний + нижний? Или все это и диагональные?
0
Nishen
466 / 277 / 88
Регистрация: 26.02.2015
Сообщений: 1,306
Завершенные тесты: 2
29.12.2016, 10:38 #3
JIawliet, задание довольно точное. Соседи это все соседи.
0
Anastasya 1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 16
29.12.2016, 10:40  [ТС] #4
Все соседи.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
29.12.2016, 14:17 #5
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
#include <iostream>
#include <random>
 
int main()
{
    const int N = 7;
    int A[N][N];
    std::uniform_int_distribution<> dist(0, 9);
    std::mt19937 gen{ std::random_device()() };
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            A[i][j] = dist(gen);
            std::cout << A[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    int counter = 0;
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            if ((i == 0 || j == 0 || A[i][j] < A[i - 1][j - 1]) &&
                (i == 0 || A[i][j] < A[i - 1][j]) &&
                (i == 0 || j == N - 1 || A[i][j] < A[i - 1][j + 1]) &&
                (j == 0 || A[i][j] < A[i][j - 1]) &&
                (j == N - 1 || A[i][j] < A[i][j + 1]) &&
                (i == N - 1 || j == 0 || A[i][j] < A[i + 1][j - 1]) &&
                (i == N - 1 || A[i][j] < A[i + 1][j]) &&
                (i == N - 1 || j == N - 1 || A[i][j] < A[i + 1][j + 1]))
                counter++;
                //std::cout << i << " " << j << std::endl;
    std::cout << "Counter: " << counter << std::endl;
}
1
Anastasya 1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 16
04.01.2017, 11:44  [ТС] #6
Это не работает
0
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
04.01.2017, 12:07 #7
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
Это не работает
Это работает
http://rextester.com/FKTMVN90672
0
Anastasya 1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 16
04.01.2017, 12:09  [ТС] #8
в С++ это не работает, выдает ошибки
0
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
04.01.2017, 12:13 #9
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
в С++ это не работает, выдает ошибки
В С++ это работает, не выдаёт ошибок. Ссылку на онлайн компилятор я привёл выше.
Повторюсь - здесь не форум экстрасенсов, мы не будем гадать что у вас за ошибки. Если программа не компилируется - выкладывайте ошибки компилятора.

P.S. не нужно писать мне в ЛС то же самое.
0
gru74ik
Модератор
Эксперт CЭксперт С++
4360 / 1936 / 210
Регистрация: 20.02.2013
Сообщений: 5,138
Записей в блоге: 22
04.01.2017, 12:53 #10
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
в С++ это не работает, выдает ошибки
Попробую задействовать свои телепатические способности. Anastasya 1, скорее всего, Вы просто не включили поддержку стандарта C++11 в своей среде разработки.
0
FreeYourMind
136 / 136 / 55
Регистрация: 13.11.2016
Сообщений: 380
04.01.2017, 13:19 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    const int N=6;
    int matr[N][N], count = 0;
    //заполнение матрицы случайными числами и вывод на экран
    for (int i=0; i<N; i++)
    {
        for (int j=0; j<N; j++)
        {
            matr[i][j] = rand()%20-5;
            cout << matr[i][j] << "\t";
        }
        cout << endl;
    }
    //поиск локальных минимумов матрицы
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            if ((i == 0 || j == 0 || matr[i][j] < matr[i - 1][j - 1]) &&
                (i == 0 || matr[i][j] < matr[i - 1][j]) &&
                (i == 0 || j == N - 1 || matr[i][j] < matr[i - 1][j + 1]) &&
                (j == 0 || matr[i][j] < matr[i][j - 1]) &&
                (j == N - 1 || matr[i][j] < matr[i][j + 1]) &&
                (i == N - 1 || j == 0 || matr[i][j] < matr[i + 1][j - 1]) &&
                (i == N - 1 || matr[i][j] < matr[i + 1][j]) &&
                (i == N - 1 || j == N - 1 || matr[i][j] < matr[i + 1][j + 1]))
                count++;
        }
    }
    cout << "количество локальных минимумов матрицы: " << count << endl;
    system("pause");
}
попробуйте так
1
Anastasya 1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 16
15.02.2017, 12:35  [ТС] #12
можете помочь?мне нужно чтобы в конце писалось в какой строке или столбце находится локальный минимум
0
FreeYourMind
136 / 136 / 55
Регистрация: 13.11.2016
Сообщений: 380
15.02.2017, 14:20 #13
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
чтобы в конце писалось в какой строке или столбце
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
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    const int N=6;
    int matr[N][N], count = 0;
    //заполнение матрицы случайными числами и вывод на экран
    for (int i=0; i<N; i++)
    {
        for (int j=0; j<N; j++)
        {
            matr[i][j] = rand()%20-5;
            cout << matr[i][j] << "\t";
        }
        cout << endl;
    }
    //поиск локальных минимумов матрицы
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            if ((i == 0 || j == 0 || matr[i][j] < matr[i - 1][j - 1]) &&
                (i == 0 || matr[i][j] < matr[i - 1][j]) &&
                (i == 0 || j == N - 1 || matr[i][j] < matr[i - 1][j + 1]) &&
                (j == 0 || matr[i][j] < matr[i][j - 1]) &&
                (j == N - 1 || matr[i][j] < matr[i][j + 1]) &&
                (i == N - 1 || j == 0 || matr[i][j] < matr[i + 1][j - 1]) &&
                (i == N - 1 || matr[i][j] < matr[i + 1][j]) &&
                (i == N - 1 || j == N - 1 || matr[i][j] < matr[i + 1][j + 1]))
            {
                count++;
                cout << "Локальный минимум № "<< count << " находится в " << i+1 << " строке на " << j+1 << " позиции." << endl;
            }
        }
    }
    cout << "количество локальных минимумов матрицы: " << count << endl;
    system("pause");
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
15.02.2017, 14:33 #14
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
мне нужно чтобы в конце писалось в какой строке или столбце находится локальный минимум
В моём коде раскомментируйте строчку 33
1
15.02.2017, 14:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2017, 14:33
Привет! Вот еще темы с ответами:

Подсчитать количество локальных минимумов матрицы - C++
Подсчитать количество локальных минимумов матрицы размерности 4х4. Локальный минимум - элемент, который меньше всех своих соседних...

Подсчитать количество локальных минимумов матрицы - C++
Дано матрицу . Разделить выходную матрицу на значения y=2/x, где x=1,5. Подсчитать кол-во локальных минимумов полученной матрицы . Найти...

Подсчитать количество локальных минимумов матрицы - C++
Дан двумерный массив NxN. 1. Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. ...

Подсчитать количество локальных минимумов матрицы - C++
Дали три задачи на зачетную. С массивами у меня более менее нормально, но вот сами задания, что от меня требуется - понять не могу. Может...


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

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

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