3
respostas

vetores java

Boa tarde!

public static void percentual(double[] media, double mediaTurma) {
        int i, j = 0;
        for(i = 0; i < media.length; i = i + 1) {
            if(media[i] < mediaTurma) {
                j = j + 1;
            }
        }
        System.out.println("Valor J: " + j);
    }

Eu estou tentando fazer que quando a média dos alunos for menor que a média da turma, j receba 1 pra eu poder fazer o percentual da turma com base nesse número e o tamanho da turma, mas j sempre recebe 1 independente da média e faz com que pareça que todos estão acima da média.

3 respostas

Olá Lucas!

Fiz o teste aqui e aparenta estar normal. Se o objetivo do J é contar quantos alunos estão abaixo da média está certo.

Já se você quiser contar a quantidade de alunos abaixo da média e fazer alguma outra operação seria necessário utilizar outra variável.

Estranho, aqui não está aparecendo o valor esperado, J fica travado em 0, segue o código inteiro pra ver se eu fiz algo de errado no resto.

package vetor;

import java.util.Scanner;

public class Vetor {

    static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        int n = 3;
        String[] nome = new String[n];
        double[] nota1 = new double[n];
        double[] nota2 = new double[n];
        double[] media = new double[n];
        preenche(nome, nota1, nota2);
        media(nota1, nota2, media);
        imprime(media, nome);
        double mediaTurma = mediaTur(media);
        percentual(media, mediaTurma);
        qtdAlunos(media);
    }

    public static void preenche(String[] nome, double[] nota1, double[] nota2) {
        int i;
        for (i = 0; i < nome.length; i = i + 1) {
            System.out.println("Digite o nome do aluno " + (i + 1) + ": ");
            nome[i] = input.next();
        }
        for (i = 0; i < nome.length; i = i + 1) {
            System.out.println("Digite a primeira nota de " + nome[i] + ": ");
            nota1[i] = input.nextDouble();
        }
        for (i = 0; i < nome.length; i = i + 1) {
            System.out.println("Digite a segunda nota de " + nome[i] + ": ");
            nota2[i] = input.nextDouble();
        }
    }

    public static void media(double[] nota1, double[] nota2, double[] media) {
        int i;
        for (i = 0; i < media.length; i = i + 1) {
            media[i] = (((nota1[i] * 2) + (nota2[i] * 3)) / 5);
        }
    }

    public static void imprime(double[] media, String[] nome) {
        int i;
        for (i = 0; i < media.length; i = i + 1) {
            System.out.println("O aluno " + nome[i] + " obteve média: "
                    + media[i]);
        }
    }

    public static double mediaTur(double[] media) {
        int i;
        double mediaTurma = 0;
        for (i = 0; i < media.length; i = i + 1) {
            mediaTurma = mediaTurma + media[i];
        }
        System.out.println("Média da turma = " + (mediaTurma / media.length));
        return mediaTurma;
    }

    public static void percentual(double[] media, double mediaTurma) {
        int i, j = 0;
        for (i = 0; i < media.length; i = i + 1) {
            if (media[i] > mediaTurma) {
                j = j + 1;
            }
        }
        System.out.println("Valor J: " + j);
    }
}

Lucas, fui testar aqui o código está apontando erro no método qtdAlunos(media); pois não está o encontrando.

Poderia me mandar ele por favor?