Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na media - notas alunos - vetores


phk1

Pergunta

package vetores;

import java.util.Scanner;

public class Media_2_vetores 
{
    public static void main(String[] args) 
    {
        String[] nome_aluno = new String[50];
        double[] notas_aluno = new double[5];        
        
        int j;
        String opcao;
        //boolean opcao = true;
        String resp = "n";        
        double media = 0,soma = 0, cont =0;
                
        Scanner sc = new Scanner(System.in);
        
        do
        {            
        
            for(int i = 0;i < nome_aluno.length;i++)                
            {        
                System.out.println("Insira o nome do aluno: ");            
                //nome_aluno[i] = sc.nextLine();
                    for(j = 0; j<4 ;j++)
                    {
                            
                        System.out.println("Entre com a " + (j + 1) + " ª nota do aluno: " + (i + 1));
                        nome_aluno[i] = sc.nextLine();
                        notas_aluno[j] = sc.nextDouble();
                        soma = soma + notas_aluno[j]; 
                        cont++;                                             
                    }        
                 
                        media = (soma / 5);
                 
                        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.nextLine(); 
                sc.nextLine();
            }
        System.out.print("Deseja Continuar? <s/n>: ");
        //if (resp == false)
        opcao = sc.nextLine(); 
        } while (!opcao.equalsIgnoreCase(resp)); //while ( opcao != 'n'); // só pára se for == 'n'        
    }
}

Prazer a todos. Por que na segunda iteração o resultado é apresentado como uma soma, a média não está sendo calculada. Não sei onde está o erro. Obrigado.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Ainda não resolvido, a saída não está boa. O algoritmo não vai para o while externo após sair do while mais interno.

package vetores;
import java.util.Scanner;

public class mediavetores2 
{    
    public static void main(String[] args)
    {
    String[] nome_aluno = new String[50];
    double[] notas_aluno = new double[5];

        int j;
        boolean opcao = true;
        String resp = " ";         
        double media = 0,soma = 0;
                
        Scanner sc = new Scanner(System.in);        
        
    
    do
    {
        
            for(int i = 0;i < nome_aluno.length;i++)                
            {        
                    System.out.println("Insira o nome do aluno: ");             
                    nome_aluno[i] = sc.next();
                    soma = 0;
                
                    while(opcao)
                    {
                        for(j = 0; j<4 ;j++)
                        
                        {                        
                            System.out.println("Entre com a " + (j + 1) + " ª nota do aluno: " + (i + 1)); 
                            notas_aluno[j] = sc.nextDouble();
                            soma = soma + notas_aluno[j];                     
                        } 
                            
                                media = soma / 5;
                         
                                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>: ");                                
                                resp = sc.next();
                                if(resp.equalsIgnoreCase("s")) 
                                    opcao = false;
                                    break;                                
                    }
                }
            }while(opcao);
                System.out.print("Deseja Continuar? <s/n>: ");     
                resp = sc.next();
                if(resp.equalsIgnoreCase("s")) 
                    opcao = false;
            
        sc.next();
        sc.close();
    }    
}
 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...