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

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

Войти
Регистрация
Восстановить пароль
 
Bedlam
Сообщений: n/a
#1

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

25.04.2013, 17:07. Просмотров 791. Ответов 1
Метки нет (Все метки)

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

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

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

Нахождение номера столбца с максимальной серией одинаковых элементов в двумерном массиве - C++
Подскажите чайнику: Сейчас учусь на заочке на первом курсе, изучаю С++. задача такая: 1. В целочисленном двумерном массиве найти...

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

Поиск элементов строк и столбцов в двумерном массиве - C++
Добрый вечер, дорогие форумчане! Имеется такая проблема. Мне необходима функция поиска элементов в двумерном массиве по строкам и...

Поиск трех максимальных элементов в двумерном массиве - C++
не могу решить, казалось бы, простую задачку. помогите пожалуйста. В заданной целочисленной матрице a(n,n), которая инициализируется в...

1
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
25.04.2013, 19:22 #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
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
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
    int A[5][5] = { { 3, 3, 2, 1, 7 },
                    { 5, 1, 1, 1, 1 },
                    { 1, 1, 7, 8, 8 },
                    { 8, 9, 1, 1, 1 },
                    { 1, 5, 6, 6, 3 } };
 
    for (int n1 = 0; n1 < 5; n1++)
    {
        for (int n2 = 0; n2 < 5; n2++)
            printf("%d ",A[n1][n2]);
 
        printf("\n");
    }
 
    printf("\n");
 
    int max_len = 0, len = 0; bool merge = false;
    int x1 = 0, y1 = 0, x1_max = 0, y1_max = 0; 
    int x2 = 0, y2 = 0, x2_max = 0, y2_max = 0; 
 
    for (int i = 0; i < 5; i++)
        for (int k = 0; k < 5; k++)
        {
            if (merge == false) { len = 0; x1 = i, y1 = k; }
            while ((A[i][k] == A[i][k+1]) && (k < 5)) { k++; len++; }
 
            merge = ((A[i][k] == A[i+1][0]) && (k >= 5)) ? 1 : 0;
            if ((merge == false) && (len > 0)) 
            { 
                x2 = i; y2 = k; 
                if (len > max_len) 
                { 
                    max_len = len; 
                    x1_max = x1; y1_max = y1; 
                    x2_max = x2; y2_max = y2; 
                }
 
                for (int t = y1; t <= y2 && !abs(x1-x2); t++)
                    printf("%d ",A[x1][t]);
                
                for (int t1 = y1; t1 < 5 && abs(x1-x2); t1++)
                    printf("%d ",A[x1][t1]);
                for (int t2 = 0; t2 <= y2 && abs(x1-x2); t2++)
                    printf("%d ",A[x2][t2]);
 
                printf("len = %d\n",len+1);
            }
        }
 
    printf("\n============================================================================\n");
 
    printf("\nMax sequence:\n");
 
    for (int r = y1_max; r <= y2_max && !abs(x1_max-x2_max); r++)
        printf("%d ",A[x1_max][r]);
                
    for (int r1 = y1_max; r1 < 5 && abs(x1_max-x2_max); r1++)
        printf("%d ",A[x1_max][r1]);
    for (int r2 = 0; r2 <= y2_max && abs(x1_max-x2_max); r2++)
        printf("%d ",A[x2_max][r2]);
 
    printf("max_len = %d\n",max_len+1);
 
    _getch();
 
    return 0;
}
http://codepad.org/bBPLa2ks
1
Миниатюры
Поиск самой длиной серии одинаковых элементов в двумерном массиве  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 19:22
Привет! Вот еще темы с ответами:

Поиск одинаковых элементов в массиве - C++
помогите найти ошибку в программе. программа должна найти различные элементы в массиве и и напечатать количество их повторений. #include...

Поиск одинаковых элементов в массиве - C++
Нужно написать код c++ который будет выводить имеются ли в заданном одномерном массиве повторяющиеся элементы(массив динамический(malloc))...

Поиск одинаковых элементов в массиве - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #define N 10 int main() { ...

Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов - C++
Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов.Помогите плиз с решением задачи


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

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

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