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

Найти наиболее длинную цепочку в двумерном массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подскажите как делать хоть что-нибудь http://www.cyberforum.ru/cpp-beginners/thread616516.html
1. Вычислить значение первой производной функции xN в заданной точке A при заданном значении N. 2. Определить число, полученное выписыванием в обратном порядке цифр заданного целого трехзначного...
C++ Использование выражений типа a == b == c; Скажите, можно ли использовать такие выражения и как они работают? Почему такая конструкция дает истину только когда все переменные равны 1 ? if(a==b==c) cout << "Hello, World !" http://www.cyberforum.ru/cpp-beginners/thread616509.html
C++ Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные
Всем привет)))Помогите пожалуйста написать программу))) Написать программу,которая считывает текст из файла и выводит на экран сначала предложения,начинающиеся с однобуквенных слов,а затем все...
C++ Исправьте ошибки
Помогите пожалуйста исправить ошибки. Сейчас на жкзамене сижу. Вроде правильно все. Но ошибок откуда-то повылазило. #include<windowsx.h> #include<stdio.h> #include<iostream> #define...
C++ Инсталяция библиотеки fltk Visual C++ 2010 Express http://www.cyberforum.ru/cpp-beginners/thread616415.html
Скачал вот отсюда http://fltk.org/software.php архив fltk-1.1.10-source.zip, извлёк содержимое, затем открыл fltk.dsw в Visual C++ 2010 Express и дальне начинаются проблемы... На скрине показано что...
C++ InitCommonControls выдаёт ошибку Здраствуйте! Помогите пожалуста учу Win32 прохожу функцию InitCommonControls (загружающею библиотеку comctl32.dll ) выдает ошибку: undefined reference to `InitCommonControls@0' ld returned 1... подробнее

Показать сообщение отдельно
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
29.06.2012, 20:53
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <stdio.h>
#include <conio.h>
#include <memory.h>
 
#define N 10
 
int main()
{
    int X[N][N] = { { 2, 5, 1, 5, 8, 1, 6, 2, 2, 3 },
                    { 9, 4, 7, 6, 5, 8, 5, 3, 8, 9 },
                    { 8, 3, 4, 5, 5, 5, 5, 8, 7, 7 },
                    { 1, 2, 4, 4, 5, 6, 2, 7, 4, 6 },
                    { 7, 1, 5, 5, 4, 4, 1, 6, 6, 2 },
                    { 6, 6, 6, 4, 1, 4, 4, 1, 3, 5 },
                    { 3, 7, 9, 7, 6, 5, 9, 4, 2, 4 },
                    { 4, 8, 1, 9, 2, 8, 5, 5, 5, 2 },
                    { 5, 9, 4, 6, 3, 2, 8, 3, 2, 3 },
                    { 7, 1, 3, 3, 5, 7, 3, 3, 1, 1 } };
 
    int max_i = 0;
    int max = 0, r = 0;
    int **Y = new int*[2 * N];
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            int k = j;
            while (X[i][j] == X[i][j+1]) j++;
            if (j-k+1 > 1)
            {
                Y[r] = new int[2 * N];
                memset((void*)Y[r], 0x00, sizeof(int) * 2 * N);
                for (int d = k, x = 0; d <= j; d++)
                    Y[r][x++] = X[i][d];
 
                if (j-k+1 > max) { max = j-k+1; max_i = r; }
 
                r++;
            }
        }
    }
 
    printf("HORIZONTAL:\n");
 
    for (int z = 0; z < r; z++)
    {
        printf("%d - ",z);
        for (int t = 0; Y[z][t] != 0; t++)
            printf("%d ",Y[z][t]);
        printf("\n");
    }
 
    printf("---------------------------------\n");
    for (int z1 = 0; Y[max_i][z1] != 0; z1++)
        printf("%d ",Y[max_i][z1]);
 
    int max_j = 0;
    max = 0; r = 0; Y = new int*[2 * N];
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            int k = j;
            while (X[j][i] == X[j+1][i]) j++;
            if (j-k+1 > 1)
            {
                Y[r] = new int[2 * N];
                memset((void*)Y[r], 0x00, sizeof(int) * 2 * N);
                for (int d = k, x = 0; d <= j; d++)
                    Y[r][x++] = X[d][i];
 
                if (j-k+1 > max) { max = j-k+1; max_j = r; }
 
                r++;
            }
        }
    }   
 
    printf("\n\nVERTICAL:\n");
 
    for (int z2 = 0; z2 < r; z2++)
    {
        printf("%d - ",z2);
        for (int t = 0; Y[z2][t] != 0; t++)
            printf("%d ",Y[z2][t]);
        printf("\n");
    }
 
    printf("---------------------------------\n");
    for (int z3 = 0; Y[max_j][z3] != 0; z3++)
        printf("%d ",Y[max_j][z3]);
 
    int* A = new int[N]; int x = 0;
    for (int j1 = 0; j1 < N; j1++)
        A[x++] = X[j1][j1];
 
    int* B = new int[N]; int y = 0;
    for (int j2 = 0; j2 < N; j2++)
        B[y++] = X[j2][N-j2-1];
 
    Y = new int*[2 * N];
    max_j = 0; max = 0; r = 0; 
    for (int w = 0; w < N; w++)
    {
        int m = w;
        while (A[w] == A[w+1]) w++;
        if (w-m+1 > 1)
        {
            Y[r] = new int[2 * N];
            memset((void*)Y[r], 0x00, sizeof(int) * 2 * N);
            for (int d = m, x = 0; d <= w; d++)
                Y[r][x++] = A[d];
 
            if (w-m+1 > max) { max = w-m+1; max_j = r; }
 
            r++;
        }
    }
 
    printf("\n\nDIAGONAL:\n");
 
    for (int z4 = 0; z4 < r; z4++)
    {
        printf("%d - ",z4);
        for (int t = 0; Y[z4][t] != 0; t++)
            printf("%d ",Y[z4][t]);
        printf("\n");
    }
 
    printf("---------------------------------\n");
    for (int z5 = 0; Y[max_j][z5] != 0; z5++)
        printf("%d ",Y[max_j][z5]);
 
    Y = new int*[2 * N];
    max_j = 0; max = 0; r = 0; 
    for (int v = 0; v < N; v++)
    {
        int m = v;
        while (B[v] == B[v+1]) v++;
        if (v-m+1 > 1)
        {
            Y[r] = new int[2 * N];
            memset((void*)Y[r], 0x00, sizeof(int) * 2 * N);
            for (int d = m, x = 0; d <= v; d++)
                Y[r][x++] = B[d];
 
            if (v-m+1 > max) { max = v-m+1; max_j = r; }
 
            r++;
        }
    }
 
    printf("\n\nREVERSE DIAGONAL:\n");
 
    for (int z6 = 0; z6 < r; z6++)
    {
        printf("%d - ",z6);
        for (int t = 0; Y[z6][t] != 0; t++)
            printf("%d ",Y[z6][t]);
        printf("\n");
    }
 
    printf("---------------------------------\n");
    for (int z7 = 0; Y[max_j][z7] != 0; z7++)
        printf("%d ",Y[max_j][z7]);
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/5648e9...75806e098bd5c8
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru