Como contar a ocorrencia de um numero em uma matriz

3 respostas
tecnocrata

bem pessoal o meu problema eh o seguinte , tenho um DataInputstream q le um arq e a partir dai quero contar as ocorrencias de cada numero no arq e jogar o resultado em um array , algo do tipo :
0 1 3 4 ....
3 2 10 65 // significaria q o numero 0 apareceu 3 vezes no arq , o 1 apareceu 2 vezes e por ai vai

o problema eh que nao to conseguindo fazer a soma :evil: !!! achava q poderia fazer
sequencia[number]=+1;
mas nao eh ;p
public void escreverArq() {
        int number;
        try {
            DataInputStream ds=new DataInputStream(new BufferedInputStream(new FileInputStream("numeros.nu")));

            try {
                while (true) {

                    // le o numero incrementa a contagem na posicao respectiva do array
                     number = ds.readInt();
                    System.out.println(number+" ");
                    sequencia[number]= ????????;   // O problema esta aqui !!!

            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e)    // fim do 2o try
        {
            e.printStackTrace();
        }
    }

abracos a todos

3 Respostas

Allan_BSO

Segue como contar a frequencia dos numeros em uma matriz.
Espero ter ajudado!!!

public class ContarNumerosEmUmaMatriz {
	public static void main(String args[]){
		
		int matriz[][] = {{1, 2, 3,6,5},{1,1,2,7,1},{3,3,3,8,10},{0,4,5,9,3},{3,3,3,10,0}};
		int arrayFreq [] = new int[11];
		
		// verifica linha por linha e coluna por coluna
		for(int l=0; l<matriz.length;l++){
			for(int c=0; c<matriz.length;c++){
				// soma 1 no array para cada valor que aparece na matriz[l][c] 
				++arrayFreq[matriz[l][c]];
			}
		}
		
		// exibe resultado:
		for (int i=0; i<arrayFreq.length;i++){
			System.out.printf("%02d: %d\n", i,arrayFreq[i]);
		}
		
	}
}
Resultado:[color=blue] [/color]
00: 2
01: 4
02: 2
03: 8
04: 1
05: 2
06: 1
07: 1
08: 1
09: 1
10: 2

Qqr coisa, posta ai.

:wink:

sergiotaborda

tecnocrata:
achava q poderia fazer

sequencia[number]=+1;

mas nao eh ;p

que tal

sequencia[number]+=1;

ou

sequencia[number]++;

Ah! e claro, tem que declarar sequencia antes com o numero correto de itens.
(Seria mais facil usar List ou implementar um classe especial (procure por Bag)

tecnocrata

agradecendo a ajuda de voces , testei as 3 maneiras e todas funcionaram :slight_smile: thanx

Criado 15 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 3
Participantes 3