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

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 ====
		
		
		}
		
		
		
	}

}

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.

1 curtida

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:

[quote=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

[code]
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 ====
	
	
	}
	
	
	
}

}
[/code][/quote]

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.