Programiranje

Potrebna pomoc za rijesenje zadatka (C++)

Dr.Atom sri 27.3.2019 14:10

Imam sljedeći zadatak:

S obzirom na kvadratnu matricu, izračunajte apsolutnu razliku između suma njegovih dijagonala.

npr. Ako imam matricu:

 

1 2 3

4 5 6

9 8 9

 

Ja bih trebao izračunati 1+5+9=15 ; 3+5+9=17 : Zatim apsolutnu vrijednost |15-17| = 2  : Konačni rezultat bi mi trebao biti dva.

Na ulazu bih trebao imati int n koji ce mi zapravo predstavljati broj redova i kolona u matrici.

Svaki od sljedećih n redaka opisuje redak, arr[i]  i sastoji se od n cijeli brojevi odvojeni razmakom arr[i][j]

Polje mi neće biti veće od 100...

 

Problem je sto ne znam kako da implementiram kod koji ce mi ici kroz vektor, npr. ako imam n=3 ; da mi pocne od prvog broja u prvom redu, onda sljedeci red ali drugi broj po redu, a onda treci red, ali ovaj put zadnji broj.

Imam neku ideju da imam dvije varijable koje ce mi pamtiti lijevu i desnu stranu i uz pomoc toga da se pomicem kroz matricu, ali opet problem implementacija


Kod koji sam ja do sada napisao:

#include<iostream>

#include<vector>

#include<cmath>

usingnamespace std;

int kvadratnamatrica(vector<vector<int>> matrix, int n) {

//Ovdje bih trebao napisati kod zapravo koji ce mi prolaziti kroz vektor...

 

 

}

int main()

{

int n;

cin >> n;

vector<vector<int>> arr(n);

for (int i = 0; i < n; i++) {

arr[i].resize(n);

for (int j = 0; j < n; j++) {

cin >> arr[i][j];

}

}

int rezultat = kvadratnamatrica(arr,n);

cout << rezultat << "\n";

return0;

}

wAlpha čet 28.3.2019 00:11

Trivijalno, napravi for petlju od 0 do n-1, članovima prve dijagonale pristupaš putem arr[n*i+i], a članovima druge arr[(i+1)(n-1)], gdje je i varijabla po kojoj iteriraš, a n veličina kvadratne matrice. Pozbrojiš svaku u zasebnu varijablu, nakraju oduzmeš i izračunaš apsolutnu vrijednost.