Ir ao conteúdo

Posts recomendados

Postado

package vetores;

import java.util.Scanner;

public class Media_2_vetores {
    public static void main(String[] args) {
        double[] notas = new double [5];
        int[] alunos = new int [50];
        int i,j;
        String opcao;
        Scanner sc = new Scanner(System.in);
        double media = 0, soma = 0,cont = 0;
        String resp = "n";
        
        do {
        for(i = 0;i < alunos.length;i++) {
        System.out.println("Entre com o aluno de nº: ");            
          alunos[i] = sc.nextInt();    
            for(j = 0;notas.length<4;j++) {
                System.out.println("Entre com a " + j + 1  + " ª do aluno: ");
                notas[j] = sc.nextDouble();
                soma = soma + notas[j];
                cont++;
                
                media = soma / cont;
                
                String aproveitamento = " ";
                if (media >= 9 && media <= 10){
                    aproveitamento = "A";
                } else if (media >= 7.5 && media < 9){
                    aproveitamento = "B";
                } else if (media >= 6 && media < 7.5){
                    aproveitamento = "C";
                } else if (media >= 4 && media < 6){
                    aproveitamento = "D";
                } else if (media >= 0 && media < 4){
                    aproveitamento = "E";
                }

                System.out.println("Média: " + media);
                System.out.println("Conceito: " + aproveitamento);

                switch(aproveitamento){
                    case "A":
                    case "B":
                    case "C": System.out.println("APROVADO"); break;
                    case "D":
                    case "E": System.out.println("REPROVADO"); break;  
                    }
              }            
          }
        System.out.print("Deseja Continuar? <s/n>: ");
        opcao = sc.next();
        } while (!opcao.equalsIgnoreCase(resp)); //while ( opcao != 'n'); // só pára se for == 'n'
        sc.close();    
    }
}

 

Prazer. Estou tendo problemas no for para ler alunos e notas. O primeiro for continua, não consigo fazer ele parar e logo a seguir ler o segundo for para entrar com a nota do aluno, o compilador continua a ler o primeiro for.

Entra com o número do aluno e logo a seguir entra com as notas. São 50 alunos e para cada um desses 50 há 4 notas.

Obrigado.

Postado

Você está instanciando de forma errada a sua matriz, porque precisa associar as notas à um aluno, eu iria sugerir que você crie uma lista para somente você armazenar os nome dos alunos alunos, e depois criar uma matriz de notas no qual cada linha seria correspondente ao index de alunos e as notas as colunas.

Primeiro que você tá instanciando apenas uma lista de tamanho 5 para notas para vários alunos. enquanto você poderia criar normalmente na matrix 4 colunas.


Outra coisa, instancie as variáveis de soma dentro do loop, senão ele vai pegar o valor da ultima operação.
 

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        String[] nome_aluno = new String[50];
        double[][] nota_aluno = new double[50][4];
        Scanner sc = new Scanner(System.in);
        String opcao = "s";


        for (int i = 0; i < nome_aluno.length; i++) {
            double soma = 0;
            System.out.println("Insira o nome do aluno");
            nome_aluno[i] = sc.next();
            for (int j = 0; j < 4; j++) {
                System.out.println("Insira a nota n" + (j + 1) + " do aluno " + nome_aluno[i]);
                nota_aluno[i][j] = sc.nextDouble();
                soma = soma + nota_aluno[i][j];
            }
            double media = soma / 4;
            System.out.println("media do aluno " + nome_aluno[i] + " é: " + media);
            System.out.print("Deseja Continuar? <s/n>: ");
            opcao = sc.next();
            if (opcao.equalsIgnoreCase("n")) {
                break;
            }
        }
    }
}

 

O seu segundo for nunca vai acontecer por que não tá contemplando a condição:


notas.length<4 nunca vai ser true
porque notas.lenght = 5.

Postado

Consertei o problema. Fiz um outro post, já que é o mesmo código mas uma situação diferente.

O problema é diferente.

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!