Olá, Eduardo, como vai?
O seu código atende perfeitamente à lógica solicitada para o exercício, demonstrando um bom domínio no uso da estrutura de repetição do-while e das condicionais para filtrar os valores do array. A implementação da verificação para números negativos e o controle do limite de cinco caixas processadas estão corretos, garantindo que o fluxo do programa seja interrompido no momento adequado.
É interessante notar como você utilizou a variável de controle fora da função, o que permite que o estado do índice seja preservado, embora em contextos maiores seja comum manter essas variáveis mais protegidas.
Parabéns pelo empenho na resolução e por compartilhar sua lógica com a comunidade, continue praticando e postando seus resultados.
O fórum está à disposição para futuras dúvidas ou para você compartilhar novas etapas do seu aprendizado.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!