Thiago, Pelo que me disse, entendi que seu código deve ser parecido com o que fiz abaixo: #include <stdio.h>
#include <conio.h>
void main()
{
int m[2][3] = {0,0,0,0,0,0}, r,l,c,cont,pos;
printf("Situaçao Atual:");
for (l=0;l<2;l++)
{
printf("\n |");
for (c=0;c<3;c++)
printf(" %d |", m[l][c]);
}
printf("\n\nQuantidade de Reservas: ");
do
{
scanf("%d", &r);
cont = 0;
pos = 0;
for(c=0;c<3;c++)
{
if(m[0][c]==0)
{
cont++; // contador lugares vagos incrementado
if(cont==r) // se já for igual a qtd de reserva, sai do while
break;
}
if(m[0][c]==1)
{
pos=c+1; // posiçao que o proximo for deve comecar a reservar
cont=0; // achou 1 lugar ocupado, zera a contagem
}
}
if(cont<r)
{
printf("não e possivel reservar %d.\n Digite outro numero: ", r);
r=0; // força a continuar no while.
}
}
while (r<=0 || r>3);
clrscr();
for(c=pos;c<r+pos;c++)
{
m[0][c] = 1;
}
for (l=0; l<2; l++)
for (c=0; c<3;c++)
printf("\nLinha %d / Coluna %d = %d", l+1, c+1, m[l][c]);
printf("\n\n\n Situaçao Atual");
for (l=0;l<2;l++)
{
printf("\n |");
for (c=0;c<3;c++)
printf(" %d |", m[l][c]);
}
} Mude os valores iniciais da matriz e faça alguns testes. Fiz como se estivesse analisando apenas a primeira linha, não sei da sua real necessidade, mas também é só adaptar. Era isso mesmo? Abraço,