Форум программистов, компьютерный форум CyberForum.ru

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

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

Задача на "особый" элемент матрицы - C++

26.09.2012, 22:00. Просмотров 1012. Ответов 3
Метки нет (Все метки)

Задача:
Дана целочисленная матрица A (N.M). Определить количество "особых" элементов массива А, считая элемент "особым", если в его строке слева от него находятся элементы, меньшие его, а справа большие.
Делаю так:
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>
 
int main()
{
    using namespace std;
    int N, M, SEQ = 0;
    
    cout << "Define the number of strings: ";
    cin >> N;
    
    cout << "Define the number of columns: ";
    cin >> M;
    
    int A[ N ][ M ];
    
    for ( int i = 0; i < N; i++)
    {
        for ( int k = 0; k < M; k++)
            cin >> A[ i ][ k ];
    }
    
    for ( int n = 0; n < N; n++ )
    {
        for ( int z = 1; z < (N - 1); z++)
        {
            if ((A[ n ][ z ] > A[ n ][ (z-1) ]) & (A[ n ][ z ] < A[ n ][ (z+1) ]))
                SEQ++;
        }
    }
    
    cout << "Number of special elements: " << SEQ << endl;
    
    return 0;
    
}
Так "особым" элементом считается только тот, который больше элемента слева и меньше элемента справа. Как сделать, чтобы элемент сравнивался не только с левым и правым от него, а со всеми элементами слева и справа от него?
Пробовать делать цикл перед "if", но получается, что в нем счетчик количества особых элементов увеличивается каждый раз, когда проверяемый элемент больше/меньше определенного элемента слева/справа, а не тогда, когда проверяемый элемент одновременно больше всех элементов слева и одновременно меньше всех элементов справа.

Заранее спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 22:00     Задача на "особый" элемент матрицы
Посмотрите здесь:
C++ Задача на "закрашивание" некоторых элементов матрицы
C++ Создать список из целых чисел. После каждого элемента, равного "х" вставить элемент, равный "у"
Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент C++
Задача С++ "Матрицы" C++
C++ Задача на нахождение "+" и "-" элементов в массиве
Структура "Сотрудник": удалить элемент с заданной фамилией, добавить элемент после заданного элемента C++
C++ Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева"
Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент C++
C++ Особый элемент
Задача "Кто старше?" (подскажите где ошибка в коде) C++
Задача "Гигабашня": минимальное расстояние до этажа со счастливым номером C++
C++ Найти ошибку в решении "Числа - палиндрома" (задача с acmp)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.09.2012, 22:14     Задача на "особый" элемент матрицы #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
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
 
int main()
{
    using namespace std;
    int N, M, SEQ = 0;
    
    cout << "Define the number of strings: ";
    cin >> N;
    
    cout << "Define the number of columns: ";
    cin >> M;
    
    int A[ N ][ M ];
    bool fl;
    for ( int i = 0; i < N; i++)
    {
        for ( int k = 0; k < M; k++)
            cin >> A[ i ][ k ];
    }
    
    for ( int n = 0; n < N; n++ )
    {
        for ( int z = 1; z < (M - 1); z++)
        {
            fl=true;
            for(int i=0; i<z; i++)
                if(A[n][z]<=A[n][i])
                    fl=false;
            for(int i=z+1; i<M; i++)
                if(A[n][z]>=A[n][i])
                    fl=false;
            if(fl)
                SEQ++;
        }
    }
    
    cout << "Number of special elements: " << SEQ << endl;
    
    return 0;
    
}
WildSpirit
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 8
26.09.2012, 22:50  [ТС]     Задача на "особый" элемент матрицы #3
Спасибо большое!
alkagolik
Заблокирован
26.09.2012, 23:30     Задача на "особый" элемент матрицы #4
1 2 3 4 5 6
где тут особый элемент?

Добавлено через 2 минуты
ага допёр. их тут 4 - это 2 3 4 5
Yandex
Объявления
26.09.2012, 23:30     Задача на "особый" элемент матрицы
Ответ Создать тему
Опции темы

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