Olá, Vivian, como vai?
Seu código está funcional e cumpre bem o objetivo do exercício. A lógica das condicionais está adequada e o cálculo do IMC está correto. Apenas vale observar que, quando os valores são negativos, o programa ainda prossegue com o cálculo, já que após a mensagem de erro não há interrupção do fluxo. Caso você deseje evitar isso, pode inserir um quit() logo após o aviso, garantindo que o cálculo não continue com dados inválidos.
Continue compartilhando seus exercícios. O fórum está à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!