2014-01-12 2 views
0

Извините за беспокойство, но мне нужна новая пара глаз.Синтаксис else if in C

case '2': 
    printf("\n>>> Desligar equipamento <<<"); 
    do { 
     printf("\nNumero? ");scanf("%d",&nr); 
    } 
    while (nr<1 || nr>99); 

    if (retirar(nr, f_equipamento_uso, f_categoria)){ 
     registarHora(n, 0, equipamento, data); //moved from the else 
     unblanker(nr, f_equipamento_uso, f_categoria);    
     //Imprimir Eq Disponiveis para verificar função abaixo 
     printf("\nRemover dos Equipamentos Disponiveis? S/N"); 
     scanf("%c", &sn); 
     getch(); 

     if (sn == 'S' || sn == 's') { 
      printf("should remove from dsp"); 
      getch(); 
      //retirar(nr, f_equipamento_disp, f_categoria); 
     } 
     else { 
     //This is the **bold else** 
     } 
    else { 
     printf("Equipamento nao existe."); 
     getch();  
    }     
    } 
    break; 

У меня есть два, если есть elses. Удаление полужирным шрифтом Я могу скомпилировать, но не работает так, как будто это «elses» для последнего if. Если я не снимаю, у меня есть синтаксические ошибки

+3

Вы пропустили закрывающую скобку '} 'для внешнего' if'. –

+1

Вы просто неуместны '}' – qrdl

+0

oh right, у меня было это на конце, а не после проблемного. – Pedro

ответ

2

Вы должны вставить } перед тем

else { 
     printf("Equipamento nao existe."); 
     getch();  
    } 

Тогда ваш код будет выглядеть следующим образом структуры:

case constant-expression: 

do 
{ 
} while(expression); 

if (expression) 
{ 

    if (expression) 
    { 
    } 
    else 
    { 
    } 

} 
else 
{ 
} 

} 

break;