1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java Ajuda 2

Discussão em 'Programação' iniciada por Elvirusfatal, 8 de Março de 2009. (Respostas: 4; Visualizações: 560)

  1. Elvirusfatal

    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: 8 de Março de 2009
  2. rj.rodrigues

    rj.rodrigues Power Member

    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++){ 
     
  3. Elvirusfatal

    Elvirusfatal Power Member

    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: 8 de Março de 2009
  4. rj.rodrigues

    rj.rodrigues Power Member

  5. Elvirusfatal

    Elvirusfatal Power Member

    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.:'(
     

Partilhar esta Página