Don't mind helping, although there isn't much any information to work with here. Still, there are some generic bits of information to know about here. First off, you probably want to represent each table as a set of elements describing the table...
Code:
typedef struct _table
{
int isSmoking;
int nSeats;
int isBooth;
int isAvailable;
// And so on...
} TABLE;
TABLE tArray[aspect][aspect];
And I presume that your 2d array is going to be an array of tables.
Also, you'll need a couble of functions...
Code:
void reserveTable(TABLE * table);
void displayRestaurant (TABLE tables[][]);
void freeTable (TABLE * table);
TABLE * findTable (TABLE tables[][], int howMany, int smoking);
So, using these functions, you could maybe reserve a table for two in smoking like this...
Code:
TABLE t;
t = findTable (tArray, 2, TRUE);
reserveTable (t);
// And later, freeing up the table isn't too tough...
freeTable(t);
First off though, I suggest making a menu to handle all the different options for the user, and work your way down into the program.
Still, please be more specific.