Olá, Isabella, como vai?
Seu código está funcionando para percorrer o array e registrar caixas válidas, porém há um ponto importante em relação ao enunciado. O exercício pede que o processamento pare assim que 5 caixas válidas forem contabilizadas, e isso ainda não está sendo controlado no seu do...while. Além disso, o enunciado considera caixas com identificação negativa como danificadas, mas o valor 0 deve ser processado como válido. O teste que você usou (caixas[i] > 0) acaba desconsiderando o zero, então vale ajustar essa condição.
No geral, sua lógica está bem encaminhada e a estrutura que montou está clara. Obrigado por compartilhar seu exercício e continue trazendo seu progresso para o fórum, estamos à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!