Problemas com ponto flutuante

Em primeiro lugar, imposto é roubo.
Em segundo lugar, galera, tô quebrando minha cabeça num código mais simples que a pqp.
Segue ele (só pus o psvm):

        Scanner in = new Scanner(System.in);
        
        System.out.print("Insira quantas provas você fez: ");
        short[] provas = new short[(in.nextShort() - 1)];
        float soma = 0.0f;
        System.out.println();
        for(int i = 0; i <= provas.length; i++){
            System.out.print("Insira a nota da " + (i + 1) + "º prova: ");
            soma = in.nextFloat();
        }
        System.out.format("A média aritmética das provas é: %.1f\n", (soma/provas.length));

Mesmo eu declarando a variável como ponto flutuante, acaba dando merda quando eu digito algum valor com vírgula/ponto no looping. Por quê?

Mas é claro que nao funcionaria do jeito que vc quer…

soma = in.nextFloat();

eu ACHO que vc quis dizer

soma += in.nextFloat();

agora PODE ser que dê uma RUIM fazer divisao de float com short… testa ai

É, a intenção era usar o composto HUAEHUAUH
Arrumei, por mais que eu não veja esse como sendo o motivo do erro, e continuou dando o erro. Ele acontece antes mesmo da divisão (esqueci de converter, vim duma linguagem sem essa incompatibilidade de tipos). Olha o erro:
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextFloat(Scanner.java:2345)
at calcularmedia.CalcularMedia.main(CalcularMedia.java:23)

“nextFloat” é sensível ao padrão de entrada, por exemplo: caso o locale esteja como US ele somente irá reconhecer números no formato americano: “10,253.2525f” (vírgula como separador de milhar e ponto como separador decimal)

Aaaaaa, era isso mesmo, muito obrigado!