I think that the remark of the exercise already gives the solution:

int seats[ 11 ]; // if you want to start counting from 1

int smoking = 1; // where the seats for the SmokingCategory start

int nonsmoking = 6; // where the seats for the NonSmoking Category start


// initialize the seats[] to all zero if it is not already


// Read what the user wants (1 or 2) checking input.. Use a combination of

// fgets() and strtol()

 // If user wants the Smoking Category

// If there are more available seats for the smoking category

(in which bounds should the smoking variable be?)

// Notify the user about the reservation (user fprintf())

// Update the seats[] array (assign 1 to the taken seat)

// Else (no more seats)

// Notify the user that no more seats are available (use fprintf())

// Use your own strategy here... you can ask user if he wants a seat

// in the NonSmoking Category

// EndIf

// Else (the user wants the NonSmoking Category)

// The same as above (except you use the nonsmoking variable instead

// of the smoking variable

// EndIf

After you implement the above simple algorithm you can of course change it to use less if's and make it better,,,, It's up to you...
Hope i helped!