How to receive a value and store it in the position indicated by the user in an array of arrays (matrix)?

Asked

Viewed 228 times

1

I did it this way:

int matriz[][] = new int[numLinhas][numColunas];

    //FOR PARA RECEBER OS VALORES E POSIÇÕES INFORMADAS PELO USUÁRIO
    for(int x=0; x<numLinhas; x++) {
        valor = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor que "
                + "deseja adicionar: "));
        valorLinha = Integer.parseInt(JOptionPane.showInputDialog("Informe a posição "
                + "que deseja adicionar(linha):"+"["+numLinhas+"]["+numColunas+"]"));
        valorColuna = Integer.parseInt(JOptionPane.showInputDialog("Informe a posição"
                + "que deseja adicionar(coluna):"+"["+numLinhas+"]["+numColunas+"]"));  
        for(int i=0; i<numLinhas; i++) {
            if(i == valorLinha) {
                for(int j=0; j<numColunas; j++) {
                    matriz[i][j] = valor;
                }
            }
        }
    }

It even works, but with small matrices.

1 answer

1

To solve your problem simply insert the value for each loop iteration into the coordinates of the matrix. See the example below:

int matriz[][] = new int[numLinhas][numColunas];

//FOR PARA RECEBER OS VALORES E POSIÇÕES INFORMADAS PELO USUÁRIO
for(int x=0; x<numLinhas; x++) {
    valor = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor que "
            + "deseja adicionar: "));
    valorLinha = Integer.parseInt(JOptionPane.showInputDialog("Informe a posição "
            + "que deseja adicionar(linha):"+"["+numLinhas+"]["+numColunas+"]"));
    valorColuna = Integer.parseInt(JOptionPane.showInputDialog("Informe a posição"
            + "que deseja adicionar(coluna):"+"["+numLinhas+"]["+numColunas+"]"));  

    // insira nas coordenadas informadas da matriz
    matriz[valorLinha][valorColuna] = valor;
}
  • Fine, but then I’d have to check if the position isn’t occupied... but I can do it, thank you

  • Actually, it did not work, it gave this error: Exception in thread "main" java.lang.Arrayindexoutofboundsexception: 2 at br.edu.utfpr.exer03.main(Exer03.java:35)

  • This happens when, or valorLinha, or valorColuna are larger than the dimensions of the matrix.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.