Java Ajuda 2

Elvirusfatal

Power Member
Dada uma pauta, quais foram os dez melhores alunos (1ª coluna a nota, ordenada por ordem decrescente e 2ª coluna o número, ordenado por ordem decrescente dentro da nota). Se houver empates são escolhidos os alunos com número de aluno mais recentes (maiores). Só podem entrar para o quadro de honra alunos que tenham obtido uma nota de pelo menos 17 valores. Assim, por exemplo numa pauta de época especial, ou mesmo de recurso, podemos ter um quadro de honra incompleto (por exemplo só com 3 alunos) ou mesmo vazio. Neste último caso, o ficheiro de saída deverá conter apenas uma linha com 10 traços horizontais (10 sinais “menos”).


eu começei por ordenar as notas.. mas ele da-me um erro Exception in thread "main" java.lang.NullPointerException
Na linha if (V_CHUMM.getNota() < V_CHUMM[i+1].getNota()) {

O metodo ainda incompleto..

Código:
public void sortN_A(){
 
for(int i=0;i<counterHUMM;i++){ 
 
if (V_CHUMM[i].getNota() < V_CHUMM[i+1].getNota()) { 
N_A temp = V_CHUMM[i]; 
V_CHUMM[i] = V_CHUMM[i+1]; 
V_CHUMM[i+1] = temp; 
 
} 
}
 
}
 
Última edição pelo moderador:
Isso deve-se ao simples facto de estares tentar a aceder a uma zona fora do array quando fazes V_CHUMM[i+1].getNota())

Em principio só tens mudar a condição no ciclo for para:
Código:
for(int i=0;i<counterHUMM-1;i++){
 
Já tentei de N maneiras e não ordena.. O meu codigo esta mal so pode :S

Código:
public void sortN_A(){
 
for(int j=0;j<counterHUMM;j++){ 
for(int i=counterHUMM-2; i>=j; i--)
if (V_CHUMM[i+1].getNota() > V_CHUMM[i].getNota()) { 
N_A temp = V_CHUMM[i+1]; 
V_CHUMM[i+1] = V_CHUMM[i]; 
V_CHUMM[i] = temp; 
 
} 
} 
for(int j=counterHUMM-2; j>=0; j--)
if (V_CHUMM[j].getNumero() > V_CHUMM[j+1].getNumero()) { 
N_A temp = V_CHUMM[j+1]; 
V_CHUMM[j+1] = V_CHUMM[j]; 
V_CHUMM[j] = temp; 
}}
 
Última edição pelo moderador:
Eu sei o bublesort.. apenas o código não esta a fazer o que devia.. alguma coisa esta mal, e eu ainda não consegui ver o que é :S.

Uma ajudinha sff.:'(
 
Back
Topo