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

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

Войти
Регистрация
Восстановить пароль
 
WildSpirit
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 8
26.09.2012, 22:00     Задача на "особый" элемент матрицы #1
Задача:
Дана целочисленная матрица 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++ "cin","cout" на "printf","scanf"
C++ Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева"
Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine" C++
Что означают команды "fun", "my_max", "my_min" в C++? C++
C++ Задача на "закрашивание" некоторых элементов матрицы
Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент C++
C++ Создать список из целых чисел. После каждого элемента, равного "х" вставить элемент, равный "у"
Составить программу,которая выведет "Да","Нет","на границе" C++
Зачем перегружать операторы "++", "<<", ">>" и что они дают? C++
Задача С++ "Матрицы" C++
C++ Задача на нахождение "+" и "-" элементов в массиве
Структура "Сотрудник": удалить элемент с заданной фамилией, добавить элемент после заданного элемента C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
26.09.2012, 23:30     Задача на "особый" элемент матрицы #4
1 2 3 4 5 6
где тут особый элемент?

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

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