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

Работа с матрицей - C++

Восстановить пароль Регистрация
 
rya
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 2
13.04.2014, 21:20     Работа с матрицей #1
Сразу прошу прощения за "говнокод", только начал изучать си.

Задача: Есть матрица NxN. Она заполнена числами от 0 до 2 рандомным образом. Если в (любых)диагоналях есть три и более (параметр) подряд одинаковых чисел,то мы это фиксируем в массиве.(нужно найти кол-во таких комбинаций, для каждого числа)

Пример:

0 1 0 2 1
1 0 1 1 1
2 1 0 0 2
2 2 1 1 1

тогда в новом массиве A[0]++


2 1 1 2 2
2 0 2 1 2
1 2 0 1 0
0 1 2 0 1
2 2 0 1 2

тогда в новом массиве A[2]++ и A[0]++


Пусть дана матрица game[N][N] заполненная числами от 0 до 2.
Сама проверка диагональных элементов:
p - параметр ( сколько элементов одинаковых должно быть подряд )
A[0...2] -массив, который фиксирует совпадения
А1[0...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
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
 
<
....
генерируем рандомную матрицу
....
>
int A[3] = {0,0,0}, A1[3];
for(int i=0;i<N-1;i++)   /*элементы вдоль побочной диагонали*/
    {
        for(int j=N-1;j>0;j--)
          {
                   
          for(int h=1;h>=p-1;h++)
          {
        if(game[i][j]==game[i+h][j-h])
         A1[game[i][j]]++;
        
        for (int k=0;k<3;k++)
            if (A1[k]==p-1)
            A[k]++;
          }
           }
        
    }
    /*вдоль главной диагонали */
        for(int i=0;i<N-1;i++)
    {
    for(int j=0;j<N-1;j++)
          {           
          for(int h=1;h>=p-1;h++)
          {
        if(game[i][j]==game[i+h][j+h])
                  A1[game[i][j]]++;
        
        for (int k=0;k<3;k++)
              if (A1[k]==p-1)
              A[k]++;
           }
       }
    }
 for (int k=0;k<3;k++)
        printf("A[%d]=%d\n",k,A[k]);
 
    return 0;
}
Видимо я чего то не понимаю, но вся это проверка не работает.
Подскажите, где я неправильно мыслю.

Добавлено через 4 часа 46 минут
Призываются местные гуру

Добавлено через 2 часа 38 минут
неужели никто не может посмотреть, где ошибка, или хотя бы подсказать как можно реализовать данную задачу другим способом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 21:20     Работа с матрицей
Посмотрите здесь:

C++ Работа с матрицей
C++ Работа с матрицей
Работа с матрицей C++
C++ работа с матрицей
работа с матрицей C++
Работа с матрицей C++
C++ Работа с матрицей
Работа с матрицей 7 на 7 C++

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

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

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