Как грамотно перебрать массив по диагонали - страница 2

 
Top2n:
Все равно ни хрена не понял, но это я тупой) у меня массив большого объема, присваивать индексы не вижу смысла
Хоть большой массив, хоть маленький, если размер массива постоянный и нужно его перебирать больше, чем один раз в процессе работы программы, то есть смысл в массиве для индексов. Не обязательно же его вручную записывать, в ините программно заполнить.
 
Top2n:

*дополнено

Переборка массива, как реализовать грамотнее?

1       2       4       7

3       5       8       11

6       9       12      14

10      13      15      16

или

1       2       6       7

3       5       8       13      

4       9       12      14

10      11      15      16
 Что то не красиво, возможно и не совсем работа способна, может кто поделится опытом...

Держите:

#define ARRAY_SIZE_X 16
#define ARRAY_SIZE_Y 8

int array[ARRAY_SIZE_Y][ARRAY_SIZE_X];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   for( int k = 0; k < ARRAY_SIZE_X; k++ ){
      for( int x = k, y = 0; x >= 0 && y < ARRAY_SIZE_Y; x--, y++ ){
         Print( "y = ", y, ", x = ", x );
         if( array[y][x] > 0 )
         {
         }
      }
   }
   for( int k = 1; k < ARRAY_SIZE_Y; k++ ){
      for( int x = ARRAY_SIZE_X-1, y = k; x >= 0 && y < ARRAY_SIZE_Y; x--, y++ ){
         Print( "y = ", y, ", x = ", x );
         if( array[y][x] > 0 )
         {
         }
      }
   }
}
//+------------------------------------------------------------------+
 
Koldun Zloy:

Держите:

Ах, спасибо вам большое, добрый человек)))