Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Anastasya 1
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 16
#1

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

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

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

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

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

Подсчитать количество локальных минимумов заданной матрицы
задание : подсчитать количество локальных минимумов заданной матрицы размером...

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

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

13
JIawliet
78 / 78 / 31
Регистрация: 20.07.2016
Сообщений: 331
Завершенные тесты: 2
29.12.2016, 10:35 #2
Anastasya 1, уточните пожалуйста, что какой элемент является "соседом"? Только боковые (слева справа)? Боковые и верхний + нижний? Или все это и диагональные?
0
Nishen
458 / 281 / 154
Регистрация: 26.02.2015
Сообщений: 1,329
Завершенные тесты: 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Эксперт С++
8078 / 4930 / 1431
Регистрация: 29.11.2010
Сообщений: 13,357
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Эксперт С++
8078 / 4930 / 1431
Регистрация: 29.11.2010
Сообщений: 13,357
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Эксперт С++
8078 / 4930 / 1431
Регистрация: 29.11.2010
Сообщений: 13,357
04.01.2017, 12:13 #9
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
в С++ это не работает, выдает ошибки
В С++ это работает, не выдаёт ошибок. Ссылку на онлайн компилятор я привёл выше.
Повторюсь - здесь не форум экстрасенсов, мы не будем гадать что у вас за ошибки. Если программа не компилируется - выкладывайте ошибки компилятора.

P.S. не нужно писать мне в ЛС то же самое.
0
sourcerer
Модератор
Эксперт CЭксперт С++
4832 / 2023 / 315
Регистрация: 20.02.2013
Сообщений: 5,431
Записей в блоге: 24
Завершенные тесты: 1
04.01.2017, 12:53 #10
Цитата Сообщение от Anastasya 1 Посмотреть сообщение
в С++ это не работает, выдает ошибки
Попробую задействовать свои телепатические способности. Anastasya 1, скорее всего, Вы просто не включили поддержку стандарта C++11 в своей среде разработки.
0
FreeYourMind
137 / 137 / 104
Регистрация: 13.11.2016
Сообщений: 381
04.01.2017, 13:19 #11
Лучший ответ Сообщение было отмечено 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
#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
137 / 137 / 104
Регистрация: 13.11.2016
Сообщений: 381
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Эксперт С++
8078 / 4930 / 1431
Регистрация: 29.11.2010
Сообщений: 13,357
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

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

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

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


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

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

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