Jump to content
Fórum Script Brasil
  • 0

Erro na media - notas alunos - vetores


Question

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 to post
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149300
    • Total Posts
      645709
×
×
  • Create New...