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

Проверка массива на наличие подряд идущих одинаковых символов в строке - C++

Восстановить пароль Регистрация
 
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
06.03.2013, 22:22     Проверка массива на наличие подряд идущих одинаковых символов в строке #1
Помогите, пожалуйста, с одной задачей. Есть массив magiсMatrix 3*5, который случайным образом инициализируется числами от 1 до 8. Нужно проверить массив на наличие подряд идущих одинаковых символов в строке, начиная с начала строки. Т.е. в массиве:

1 2 6 7 8
2 2 2 6 7
3 8 1 2 2

есть только комбинация 2 2 2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void winCalculate ( ) {
        for (int i = 0; i < row; i++)
            for (int j = 0; j < column; j++) {
                if(magicMatrix [i][j] == magicMatrix [i][j + 1]) {              // 2 совпадения
                    if(magicMatrix [i][j] == magicMatrix [i][j + 2]) {          // 3 совпадения
                        if(magicMatrix [i][j] == magicMatrix [i][j + 3]) {      // 4 совпадения
                            if(magicMatrix [i][j] == magicMatrix [i][j + 4]) {  // 5 совпадений
                                checkForWin ( );
                            }
                        checkForWin ( );
                        }
                    checkForWin ( );
                    }
                checkForWin ( );
                }
            }
    }
Назначение функции checkForWin ( ) здесь не имеет значения, но она почему-то вызывается, даже когда нет комбинаций

Добавлено через 37 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    void winCalculate ( ) {
        for (int i = 0; i < row; i++) {
            int j = 0;
                if(magicMatrix [i][j] == magicMatrix [i][j + 1]) {              // 2 совпадения
                    if(magicMatrix [i][j] == magicMatrix [i][j + 2]) {          // 3 совпадения
                        if(magicMatrix [i][j] == magicMatrix [i][j + 3]) {      // 4 совпадения
                            if(magicMatrix [i][j] == magicMatrix [i][j + 4]) {  // 5 совпадений
                                checkForWin (magicMatrix [i][j], 4);
                                break;
                            }
                        checkForWin (magicMatrix [i][j], 3);
                        break;
                        }
                    checkForWin (magicMatrix [i][j], 2);
                    break;
                    }
                checkForWin (magicMatrix [i][j], 1);
                break;
                }
            }
    }
Уже нашел решение
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 22:22     Проверка массива на наличие подряд идущих одинаковых символов в строке
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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