Ler uma matriz e depois buscar um número da mesma

4 respostas
A

estou fazendo uma matriz, e depois de listar tenho que digitar um número, e caso ele exista, deve informar a linha e coluna que está localizado.
Caso não existe deve exibir uma mensagem dizendo que nao foi encontrado

consigo exibir a matriz, mas na hora de digitar algum valor ele da erro

public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n1[][];
		
		n1 = new int[3][3];
		int posicao;
		int x[];
		x =new int [1];
		
		
		
		for (int i = 0; i < n1.length; i++) 
		{
					
		for (int j = 0; j < n1.length; j++) 
		{
			System.out.println(" digite a linha " + i + " coluna " + j + ":");
			n1[i][j] = sc.nextInt();
		}
		
		
		}
		
		for (int i = 0; i < n1.length; i++) 
		{		
		for (int j = 0; j < n1.length; j++) 
		{
		
			System.out.print(n1[i][j] + " ");	
		}
		
		System.out.println();
		
		int soma = n1[x]; === erro ocorre aqui quando digito algum valor ====
		
		
		}
		
		
		
	}

}

4 Respostas

E

Não entendi o porque disso?

System.out.println();  
          
        int soma = n1[x]; === erro ocorre aqui quando digito algum valor ====

para resolver esse problema o que você pode fazer é ler esse valor em uma variável e depois rodar a matriz de novo e fazer um (If) dentro do (For) comparando para ver se o número existe dentro da sua matriz.

Cornelius

Cara, faltou voce procurar ne?

Num gosto de dar a solução direta mas faz assim:

Tira isso:

System.out.println();     
     
int soma = n1[x]; === erro ocorre aqui quando digito algum valor ====

e poe isso:

//Pegando o valor que tu vai procurar na matriz
		System.out.println(" digite o numero que procura");   
		int numeroProcurado = sc.nextInt();   

		//Procurando
		boolean achou = false;
		for (int i = 0; i < n1.length; i++){         
			for (int j = 0; j < n1.length; j++){   
				
				if(n1[i][j]==numeroProcurado){
					
					achou = true;
				}
            }  
		}
		
		//Achou ou nao?
		if(achou){
			System.out.println("Achou");
		}
		else{
			System.out.println("Nao achou");
		}

So da uma olhada se as variaveis batem.

Vlws! :wink:

A
Andrius Martinelli:
estou fazendo uma matriz, e depois de listar tenho que digitar um número, e caso ele exista, deve informar a linha e coluna que está localizado. Caso não existe deve exibir uma mensagem dizendo que nao foi encontrado

consigo exibir a matriz, mas na hora de digitar algum valor ele da erro

public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n1[][];
		
		n1 = new int[3][3];
		int posicao;
		int x[];
		x =new int [1];
		
		
		
		for (int i = 0; i < n1.length; i++) 
		{
					
		for (int j = 0; j < n1.length; j++) 
		{
			System.out.println(" digite a linha " + i + " coluna " + j + ":");
			n1[i][j] = sc.nextInt();
		}
		
		
		}
		
		for (int i = 0; i < n1.length; i++) 
		{		
		for (int j = 0; j < n1.length; j++) 
		{
		
			System.out.print(n1[i][j] + " ");	
		}
		
		System.out.println();
		
		int soma = n1[x]; === erro ocorre aqui quando digito algum valor ====
		
		
		}
		
		
		
	}

}
Cornelius

Cara, tu chegou a dar uma olhada nas outras respostas? Tu postou o mesmo código de novo… onde é que está dando o erro? Vc falou que a matriz mostra legal mas quando pega um valor da erro? Num tinha que ser o contrário?

Dá uma olhada também na documentação da classe Scanner.

Criado 24 de outubro de 2012
Ultima resposta 19 de nov. de 2012
Respostas 4
Participantes 3