1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida em Linguagem C. Erro desconhecido.

Discussão em 'Programação' iniciada por peterdanielsc, 14 de Janeiro de 2013. (Respostas: 2; Visualizações: 573)

  1. Bem, eu tenho o seguinte bocado de código numa função:
    Código:
    switch(tipo_quarto){                    
                       case 1: for(i=0; i<ANDARES; i++){
                                 for(j=0; j<QUARTOS; j++){
                                          if(tipo_quarto == informacao[i].quarto[j].tipo_quarto && informacao[i].quarto[j].ocupacao==0 && *indiv>0){
                                          info_check_in_hospede(informacao, i, j);
                                          informacao[i].quarto[j].ocupacao=1;
                                          *indiv=*indiv-1;
                                           sucesso=1;
                                          break;
                                          }
                                          }
                                          }
                                 break;
                        }
    
    
    Eu quero utilizar o primeiro "i" e "j" em que a condição seja verdade, mas o que me acontece é que no caso de a condição se verificar em dois "i" diferentes, as instruções são repetidas. Uso o break, mas parece que só pára o ciclo for interno("j"). E se utilizo break antes de fechar o ciclo for externo ("i") só percorre os "j" do primeiro "i".
    Alguém me pode ajudar?
     
  2. Não sei se percebi bem a tua dúvida, mas parece-me que o que queres é o seguinte:
    Código:
    switch(tipo_quarto){                    
        case 1:
            [B][COLOR=#00ff00]int sucesso=0;[/COLOR][/B]
            for(i=0; [COLOR=#00ff00][B](i<ANDARES) && (sucesso==0)[/B][/COLOR]; i++){
                for(j=0; j<QUARTOS; j++){
                    if(tipo_quarto == informacao[i].quarto[j].tipo_quarto && informacao[i].quarto[j].ocupacao==0 && *indiv>0){
                        info_check_in_hospede(informacao, i, j);
                        informacao[i].quarto[j].ocupacao=1;
                        *indiv=*indiv-1;
                        sucesso=1;
                        break;
                    }
                }
            }
    }
     
  3. Sim, era algo desse género. Mas eu já conseguir pôr a funcionar, após "algumas" horas depois.
    Obrigado na mesma ;)
     

Partilhar esta Página