#include<iostream>

struct bottle
{
    int x = 0 ;
    int y = 0 ;
    // ....
};

std::ostream& operator<< ( std::ostream& stm, const bottle& b )
{ return stm << '(' << b.x << ',' << b.y << ')' ; }

// adjust the values of these as required
constexpr int NROWS = 8 ;
constexpr int NCOLS = 6 ;
constexpr int start_x = 25 ;
constexpr int start_y = 15 ;
constexpr int delta_x = 8 ;
constexpr int delta_y = 11 ;

using bottle_array_type = bottle[NROWS][NCOLS] ;
// typedef bottle bottle_array_type[NROWS][NCOLS] ;

void initialize_bottle_array( bottle_array_type& bottle_array )
{
    for( int row = 0 ; row < NROWS ; ++row )
        for( int col = 0 ; col < NCOLS ; ++col )
        {
            bottle_array[row][col].x = start_x + col * delta_x ;
            bottle_array[row][col].y = start_y + row * delta_y ;
        }
}

int main()
{
    bottle_array_type bottle_array ;
    initialize_bottle_array(bottle_array) ;
    for( const auto& row : bottle_array )
    {
        for( const bottle& b : row ) std::cout << b << ' ' ;
        std::cout << '\n' ;
    }
}
