import java.util.Random;
import java.util.Scanner;
public class Main {
/**
* @param args the command line arguments
*/
public static int geraMatriz(int mat[][]){
Scanner ler = new Scanner(System.in);
Random numero = new Random();
System.out.print("Insira as dimensões da matriz: ");
int lin = ler.nextInt();
int col = lin;
[color=brown] mat[][] = new int [lin][col];[/color]
for (int i = 0; i < lin; i++){
for (int j = 0; j < col; j++){
mat[i][j] = numero.nextInt(500);
}
}
return mat[lin][col];
}
public static void mmostraMatriz(int mat[][]){
for (int i = 0; i < mat.length; i++){
for (int j = 0; j < mat.length; j++)
System.out.printf("%3d ", mat[i][j]);
System.out.println();
}
}
public static void main(String[] args) {
int matriz[][] = null;
geraMatriz(matriz[][]);
mostraMatriz(matriz[][]);
// TODO code application logic here
}
}
no NetBeans está dando erro e eu não sei o que é! alguém pode me ajudar???
Você esqueceu declarar a matriz como int[][] matriz;
mas ela esta declarada nos parâmetros do método geraMatriz(int mat[][])
ou estou errado!?!
O Bruno esta certo declare a matriz desta forma, int[][] nome = new int[][];
Vlw
MarcioCasteloBranco,
fiz isso e naum funcionou ainda!
Bem, os dois colchetes que você está colocando depois do nome da variável, coloque-os antes do nome
da variável. E quando, depois de ler a quantidade de linhas e atribui-las também a colunas, você está
instanciando a sua nova matriz colocando os colchetes depois da variável, não é preciso fazer isso somente
você precisa colocar o nome da variável.
public static int[][] geraMatriz(int[][] matriz) {
//.....
//.....
//.....
// instanciando a matriz
matriz = new int[linha][coluna];
//.....
//.....
}
Bem além da declaração da matriz e da instanciação, se você olhar bem nesse exemplo que eu coloquei
você poderá perceber que o tipo de retorno que estou declanrando ela não tem apenas o tipo int e sim
o tipo int e também os dois colchetes, já estou querendo retornar uma nova matriz.
E no seu método principal (main) você cria uma matriz e passa ela como parâmetro, só que nesse método
que você está fazendo ele retorna uma matriz que foi criada dentro dele, e você não está recebendo essa
matriz no seu método principla, lógico que dessa maneira também dará certo. Então pergunto, é preciso
criar um método que instancie uma matriz e retorne-a ou não, porque se for necessário você retornar uma
matriz não precisaria que esse método recebesse um parâmetro?
Perfeito vc insatancio a matriz contudo agora vc tem que instanciar cada posição da matriz
for (int i = 0; i < lin; i++){
for (int j = 0; j < col; j++){
mat[i][j] = new int();//a cada posição recebera um int!!!
mat[i][j] = numero.nextInt(500);
}
}
return mat[lin][col];
}
Por favor, use as tags e
sempre que postar seu código.
Acontece que você está misturando o tipo da variável com o nome dela. O tipo é int[][] e o nome é matriz (e não matriz[][]).
Olha um exemplo:
import java.util.Random;
import java.util.Scanner;
public class Main {
public static int[][] geraMatriz(){
Scanner ler = new Scanner(System.in);
Random numero = new Random();
System.out.print("Insira as dimensões da matriz: ");
int lin = ler.nextInt();
int col = lin;
int[][] mat = new int [lin][col];
for (int i = 0; i < lin; i++){
for (int j = 0; j < col; j++){
mat[i][j] = numero.nextInt(500);
}
}
return mat;
}
public static void mostraMatriz(int[][] mat){
for (int i = 0; i < mat.length; i++){
for (int j = 0; j < mat.length; j++) {
System.out.printf("%3d ", mat[i][j]);
}
System.out.println();
}
}
public static void main(String[] args) {
int matriz[][] = geraMatriz();
mostraMatriz(matriz);
}
}
COLOCA NO TOPICO RESOLVIDO
VLW