[Resolvido] Média dos multiplos de 3

Não sei aonde está o erro!

public class Exerc_4_lista_4 {
    public static void main (String [] args){

        int n, soma = 0,media = 0, a = 0;

        String num;

            num = JOptionPane.showInputDialog("Digite um numero");

            n = Integer.parseInt(num);

                while (n > 0){
                    if(n % 3 == 0)
                       a++;
                       soma = soma + n;
                         media = soma / n;
                         
                 
            num = JOptionPane.showInputDialog
                    ("Digite um valor negativo para sair");

            n = Integer.parseInt(num);

        if (n != 0){
            
        
            JOptionPane.showMessageDialog(null,"A media é " +media);



        }
    }
    }
}

Erro de sintaxe eu não consegui observar nenhum, agora se o erro está num
resultado inesperado vc escreveu ± isso:

linha 12: enquanto o valor digitado for maior que zero;
linha 13: se o valor digitado for multiplo de trez (0,3,6,9,12 …) . O operador % retorna o resto de uma divisão.
linha 14: some +1 em “a”, que por sua vez (o “a”) não está sendo usado em nenhum lugar.

Chutando, acho que caberia usá-lo na linha 16 como divisor.
Agora, incrementar o “a”, que aparentemente conta a quantidade de
valores digitados, somente quando o valor digitado é multiplo de trez eu não consegui entender.

import javax.swing.JOptionPane;

public class Exerc_4_lista_4 {
    public static void main (String [] args){

        int n, soma = 0,media = 0, a = 0;
        String num;

        num = JOptionPane.showInputDialog("Digite um numero");
        n = Integer.parseInt(num);

        while (n > 0){
              if(n % 3 == 0){
                   a++;
                   soma = soma + n;
              }

              num = JOptionPane.showInputDialog("Digite um valor negativo para sair");
              n = Integer.parseInt(num);
        }

        media = soma / a;
        if (n != 0){
           JOptionPane.showMessageDialog(null,"A media é " +media);
           }
    }
}

Não sei exatamente se era isso que o enunciado pedia, mas tentei resolver me baseando no título da mensagem.
[]'s

efs.santos este cont a está errado mesmo.
marcostahara não e isso que quero, o programa tem que dar a media dos multiplos de 3, somente dos multiplos de 3 dos outros não!

Vlw amigo marcos e efs modifiquei e retirei! Funcionou blz!

[code]
import javax.swing.JOptionPane;

public class Exerc_4_lista_4 {
public static void main (String [] args){

    int n, soma = 0, media = 0, a = 0, b = 1;
    String num;
    int[] vetor = new int[10];

    num = JOptionPane.showInputDialog("Digite um numero");
    n = Integer.parseInt(num);

    while (n >= 0){
          if(n % 3 == 0){
               a++;
               vetor[a] = n;
               soma = soma + n;
          }

          num = JOptionPane.showInputDialog("Digite um valor negativo para sair");
          n = Integer.parseInt(num);
    }

    if (a > 0){
       while (b <= a) {
          JOptionPane.showMessageDialog(null,+b+"º multiplo de 3 digitado:  "+vetor[b]);
          b++;
       }
       media = soma / a;
       JOptionPane.showMessageDialog(null,"\nSoma dos multipos de três:  " +soma+
       "\nQuantidade de múltiplos de 3:  " +a+
       "\nMédia:  " +media);

    } else if (a == 0)
              JOptionPane.showMessageDialog(null,"Nenhum múltiplo de 3 foi digitado !!!");
}

}[/code]

Era isso que você precisava, só por curiosidade…
[]'s