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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ подскажите пожалуйста с кодом http://www.cyberforum.ru/cpp-beginners/thread848397.html
как удалить из двумерного массива столбец с заданным номером?
C++ Разбить функцию на 2 функции Помогите, есть функция сортировка массива по убыванию. Не могу понять как сделать. Нужно разбить на 2. Заранее всем спасибо. void sortmatrix(int a,int mw,int mh) { int K; int i; int s; int j; for (j=0;j<mh;j++) { for(i=1;i<mw;i++) { K=a; s=i-1; http://www.cyberforum.ru/cpp-beginners/thread848349.html
Как перегрузить оператор C++
Вот написал функцию поиска студента по номеру группы. STL list void find() { setlocale( LC_ALL,"Russian" ); if (students.empty()) cout<<"Нет студентов в списке"; else { int number; cout<<"Введите искомую группу"<<endl; cin>>number;
Универсальность. Применение шаблонов функций и классов C++
Здравствуйте, помогите решить лабораторную работу по написанию программы в C++. Задание следующее: "Задание представляет собой типовую задачу по разработке шаблонов стандартных структур данных. Протестировать структуру данных. В качестве хранимых объектов использовать встроенные типы С++ (int, float)" Программа по возможности должна выполнять следующее: Структура данных: стек....
C++ c++, функции http://www.cyberforum.ru/cpp-beginners/thread848334.html
Помогите разобраться с функциями: Оформить каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; unsigned long long int Akkerman(unsigned long long int m, unsigned long long int n)
C++ Организовать на основе существующего класса произвольный класс осваиваю классы, но пока сложновато. Помогите пожалуйста с заданием: необходимо изменить код программы, организовав на основе существующего класса произвольный класс. Произвольный класс так же должен содержать не менее двух конструкторов.Исходная программа должна содержаться в двух файлах. В первом описание классов, во -втором реализация, т.е. работа с объектами. Продемонстрировать работу всех... подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
25.04.2013, 19:22     Поиск самой длиной серии одинаковых элементов в двумерном массиве
Как-то, вот так:
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
Миниатюры
Поиск самой длиной серии одинаковых элементов в двумерном массиве  
 
Текущее время: 07:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru