Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Bedlam
1

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

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

Помогите, нужно найти самую длинную серию одинаковых элементов в двумерном массиве.
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 17:07
Ответы с готовыми решениями:

Поиск одинаковых элементов в двумерном массиве
Помогите написать программу на поиск одинаковых элементов двумерного массива

Поиск одинаковых элементов в двумерном массиве
Есть двумерный массив, нужно в каждой строке найти одинаковые элементы и вывести их и еще...

Поиск пути для одинаковых элементов в двумерном массиве
в общем у меня есть матрица и там есть элементы равным 1 а все остальные равны нулю, как найти путь...

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

1
93 / 745 / 279
Регистрация: 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
Миниатюры
Поиск самой длиной серии одинаковых элементов в двумерном массиве  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2013, 19:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

составить программу определения числа одинаковых целых чисел к в серии длиной больше 1 в одномерном массиве Х=(х1,х2,…,хn)
type mas=array of integer; var mt,mD:mas; p,k,n,e:integer; begin write('n= '); readln(n); ...

Поиск одинаковых элементов в двумерном массиве как в строках так и в столбцах
Поиск одинаковых элементов в двумерном массиве как в строках так и в столбцах а если эти элементы...

В одномерном массиве вычислить количество элементов в самой длинной серии
в одномерном массиве вычислить количество элементов в длинной серии. серия - это последовательность...

Поиск двух одинаковых чисел в двумерном массиве
Здравствуйте, уважаемые форумчане. Помогите решить задачу (задачка у нас из разряда гуру): Массив...


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

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

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