Olá, Ulysses, como vai?
Analisando seu código, a lógica geral está bem organizada, mas há um ponto importante a ajustar. No trecho onde você verifica se o número é ímpar, você está usando a variável i, que representa apenas a posição do loop. O ideal é verificar o próprio valor digitado pelo usuário, pois é ele que pode ser ímpar ou par.
Um exemplo seria usar a variável numeros na verificação, como em: if (numeros % 2 != 0). Isso garante que o contador aumente somente quando o número informado realmente for ímpar.
Seu exercício está no caminho certo. Continue compartilhando seus códigos no fórum. Estamos à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!