Ir ao conteúdo
  • Cadastre-se

O que tem de errado no meu código?


Posts recomendados

Pessoal, eu estou aprendendo a pouco tempo a linguagem java. Eu tentei criar um programa para capturar o nome de 10 alunos, a nota de cada aluno em cada bimestre, sendo 5 bimestres. No final o programa deve informar o nome de cada aluno, dizer se ele foi aprovado ou reprovado (média 6) e informar a média dos 5 bimestres de cada aluno. O erro é que a partir da segunda execução o programa não pede mais o nome do aluno. Eu quis fazer um programa que eu pudesse mudar a quantidade de alunos e quantidade de bimestres rapidamente mudando apenas os tamanhos dos vetores. Eu não consigo identificar o erro e o mais estranho é que na primeira execução o programa pede o nome mas a partir da segunda não pede mais.

Obs: a média das notas dos bimestres ficam armazenadas no último valor do vetor do bimestre.

 

Código do programa:

package MeusProgramas;import java.util.Scanner;public class SistemaDeNotas {    public static void main(String[] args) {                Scanner input = new Scanner(System.in);        String[] nomes = new String[10];        double[][] notas = new double[10][6];        int bimestre;        int aluno;        int i;        double soma;                for(aluno = 0; aluno<nomes.length; aluno++){                        System.out.println("Digite o nome do " + (aluno+1) + "º aluno:");            nomes[aluno] = input.nextLine();                        for(bimestre = 0; bimestre < notas[aluno].length; bimestre++){                                if(bimestre == (notas[aluno].length) - 1 ){                    soma = 0;                                        for(i = 0; i<=(notas[aluno].length) - 2; i++){                        soma+= notas[aluno][i];                    }                                        notas[aluno][ (notas[aluno].length) - 1 ] = soma / ( (notas[aluno].length) - 1 );                                    }                                else{                    System.out.println("Digite a nota do aluno do " + (bimestre +1) + "º bimestre:");                    notas[aluno][bimestre] = input.nextDouble();                }                            }                    }                for(aluno = 0; aluno<nomes.length; aluno++){                        System.out.print(nomes[aluno]);                        if(notas[aluno][ (notas[aluno].length) - 1 ] >= 6){                System.out.println(" está aprovado com média igual a " + notas[aluno][ (notas[aluno].length) - 1 ]);            }            else{                System.out.println(" está reprovado com média igual a " + notas[aluno][ (notas[aluno].length) - 1 ]);                            }            System.out.println();                    }            }    }
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá!

O problema no seu código parece ser somente nas funções de exibir e capturar dados do usuário. O resto funcionou corretamente aqui.

import javax.swing.JOptionPane;public class SistemaDeNotas {    public static void main(String[] args) {                String[] nomes = new String[3];        double[][] notas = new double[3][4];        int bimestre;        int aluno;        int i;        double soma;                for(aluno = 0; aluno<nomes.length; aluno++){                    	nomes[aluno] = JOptionPane.showInputDialog("Digite o nome do " + (aluno+1) + "º aluno:");                        for(bimestre = 0; bimestre < notas[aluno].length; bimestre++){                                if(bimestre == (notas[aluno].length) - 1 ){                    soma = 0;                                        for(i = 0; i<=(notas[aluno].length) - 2; i++){                        soma+= notas[aluno][i];                    }                                        notas[aluno][ (notas[aluno].length) - 1 ] = soma / ( (notas[aluno].length) - 1 );                                    }                                else{                	notas[aluno][bimestre] = Double.parseDouble(JOptionPane.showInputDialog("Digite a nota do aluno do " + (bimestre +1) + "º bimestre:"));                }                            }                    }                for(aluno = 0; aluno<nomes.length; aluno++){                        System.out.print(nomes[aluno]);                        if(notas[aluno][ (notas[aluno].length) - 1 ] >= 6){                JOptionPane.showMessageDialog(null, nomes[aluno] + " está aprovado com média igual a " + notas[aluno][ (notas[aluno].length) - 1 ]);            }            else{                JOptionPane.showMessageDialog(null,  nomes[aluno] +  " está reprovado com média igual a " + notas[aluno][ (notas[aluno].length) - 1 ]);            }            System.out.println();                    }            }    }

Eu usei JOptionPane que eu estou mais acostumado. Seu código tem umas "chaves" desnecessárias mas que didaticamente ajudam a compreender o funcionamento do código.

 

Obs: Lembre-se no final se informar de quem são as médias que aparecem. Eu adicionei o nome do aluno antes da mensagem.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...