O intuido desse algoritmo é fazer a média de um aluno, e depois organizar em ordem alfabetica, mais mantendo o indice da nota
mais o java lança um resultado de divisão incorreto, fazendo o erro no sistema. me ajudem por favor
[code] public static void main(String[] args) {
double somaDasNotas=0,auxSoma=0;
int qntdAlunos = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade de alunos que irão receber média"));
int qntdNotaTemAluno = Integer.parseInt(JOptionPane.showInputDialog("Digite quantas notas os alunos irão receber"));
// vetores : armazenam nome e média od alunos
String nomesAlunos [] = new String [qntdAlunos];
double mediaAluno [] = new double [qntdAlunos];
double mediaAlunoCopia [] = new double [qntdAlunos];
for (int i = 0; i < nomesAlunos.length; i++) {
nomesAlunos[i] = JOptionPane.showInputDialog("Digite o nome do " + (i+1) + "º aluno");
//Colocando todas a notas do aluno para que seja obtida a média
for (int j = 1; j <= qntdNotaTemAluno; j++) {
do{
auxSoma = Double.parseDouble(JOptionPane.showInputDialog("Digite a " + j + "ª nota do aluno " + nomesAlunos[i]));
if ((auxSoma<0)||(auxSoma>10)){
JOptionPane.showMessageDialog(null, "Nota não poderá ser maior que 10 e nen menor que 0","Msg erro",
JOptionPane.ERROR_MESSAGE,null);
auxSoma = -1;
}else{
JOptionPane.showMessageDialog(null, "Nota confirmada");
somaDasNotas += auxSoma;
}
}while(auxSoma == -1);
}//final for J
mediaAluno[i] = (somaDasNotas/qntdNotaTemAlunos);
somaDasNotas = 0;
System.out.println(mediaAluno[i]);
}// fina for I
int opcaoOrganizamento = Integer.parseInt(JOptionPane.showInputDialog("OPÇÕES DE ORGANIZAÇÃO BIMESTRAL \n1- orgazinar por ordem alfabética"
+ "\n2- organizar por ordem númerica de notas(crecente)"));
//concatenando o indice do vetor dentro do String de nome, para que cada aluno fique com sua nota pertencente, após a organização
for (int i = 0; i < nomesAlunos.length; i++) {
nomesAlunos[i] += "" + i;
}
Arrays.sort(nomesAlunos, 0 , nomesAlunos.length);
int auxOrganizacao=0,numeroUltimo=0,j=0;
String ultimo = "";
//tirando o indico que ficou no string, e absorvendo ele a uma variável para ser comparada
for (int i = 0; i < mediaAlunoCopia.length; i++) {
ultimo = nomesAlunos[i].substring(nomesAlunos[i].length()-1 , nomesAlunos[i].length());
nomesAlunos[i] = nomesAlunos[i].substring(0,nomesAlunos[i].length()-1);
numeroUltimo = Integer.parseInt(ultimo);
mediaAlunoCopia[i] = mediaAluno[numeroUltimo];
}
for (int i = 0; i < mediaAluno.length; i++) {
System.out.println("nome: " + nomesAlunos[i] + " Média: " + mediaAlunoCopia[i]);
}[/code]
[color=red] [/color]Gostaria de saber, porque nesse ponto o java, passa um resultado de divisão incorreto[size=18] [/size]
mediaAluno[i] = (somaDasNotas/qntdNotaTemAlunos);