Array diagonal in java

4

Firstly, I would like to inform you that I am new here on the site, and if by chance my question was left uninformed or poorly organized please speak.

I was trying to solve this question:

Iwasabletodevelopthiscode:

importjava.util.Scanner;classMatriz1{publicstaticvoidmain(String[]args){Scannerler=newScanner(System.in);intN=ler.nextInt();inti,j,m[][]=newint[N][N];//Lermatrizfor(i=0;i<N;i++){//informalinhaSystem.out.printf("Informe os elementos %da. linha:\n", (i+1));
          for (j=0; j<N; j++) {
            //informa qual numero deve se colocar
            System.out.printf("m[%d][%d] = ", i, j);
            m[i][j] = ler.nextInt();
          }
      // salta linha para n ficar confuso
      System.out.printf("\n");
    }

But I can not figure out how to get the diagonal differences from the array.

    
asked by anonymous 22.11.2015 / 23:06

2 answers

3

It looks like this:

import java.util.Scanner;

public class Matriz1 {

    public static void main(String[] args) {
        Scanner ler = new Scanner(System.in);

        int n = ler.nextInt();

        int matriz[][] = new int[n][n];

        // Lê a matriz.
        for (int i = 0; i < n; i++) {
            // Informa a linha.
            System.out.printf("Informe os elementos %da. linha:\n", (i + 1));
            for (int j = 0; j < n; j++) {
                // Informa qual número deve se colocar.
                System.out.printf("m[%d][%d] = ", i, j);
                matriz[i][j] = ler.nextInt();
            }
            // Salta linha para não ficar confuso.
            System.out.printf("\n");
        }

        // Obtém a soma das diagonais.
        int somaDiagonal1 = 0, somaDiagonal2 = 0;
        for (int i = 0; i < n; i++) {
            somaDiagonal1 += matriz[i][i];
            somaDiagonal2 += matriz[n - 1 - i][i];
        }

        // Calcula a diferença das somas.
        int diferenca = somaDiagonal1 - somaDiagonal2;
        if (diferenca < 0) diferenca *= -1;

        // Exibe o resultado.
        System.out.printf("A difereça da soma das diagonais é %d.", diferenca);
    }
}
    
23.11.2015 / 00:21
2

I'm not experienced in java, but I thought it might help you, add this to your code:

int D = 0; // soma dos números da diangonal 2

for (i=0; i<N; i++) {
  D += m[i][i];
}

int d = 0; // somas dos números da diangonal 1

for (i=0; i<N; i++) {

  for (j=N-1; j>=0; j--) {
     d += m[i][j];
     break;
  }
}
int df = d - D; // resultado da diferença da soma dos números das diagonais (o que voce quer :D)

Once I did something similar in javascript, I used the same logic, in case something goes wrong, please let me know.

    
22.11.2015 / 23:36