Bom dia, Cristiano! Dando uma olhada no código ele parece certo. O que pode estar acontecendo é que na hora de responder se tem carteira você esteja colocando um 's' minúsculo e ai ele não satisfaz a condição do if, que pede um 'S' maiúsculo. Para resolver isso podemos utilizar a função toUpperCase() na condição do if para converter toda a string para maiúsculo. Ficaria assim:
if(idade >= 18 && temCarteira.toUpperCase() == "S"){
mostra("pode dirigir")
} else{
mostra("Não pode dirigir")
}
Espero ter te ajudado! Abraços e bons estudos.