Informatică, întrebare adresată de darius300, 8 ani în urmă

se citeste o matrice patratica de dimensiuni n sa se afiseze cati de 0 se afla pe diagonala principala si secundara

Răspunsuri la întrebare

Răspuns de ArMyFoRHeLL
2

Se parcurge matricea pe diagonala principala si secundara.

Observam ca indici elementelor de pe diagonala principala sunt egalii deci

i = j

Pe diagonala secundara indici au modelul i + j = n + 1 sau

j = n - i + 1

Mai e un un caz special cand n este impar iar cele 2 diagonale se intalnesc intr-un "mijloc" si o sa fie numarat de 2 ori numarul daca este 0.

#include <iostream>

using namespace std;

int main()

{

int n, i, j, k = 0;

cin >> n;

int mat[n+1][n+1];

for ( i = 1 ; i <= n ; ++i )

for ( j = 1 ; j <= n ; ++j )

cin >> mat[i][j];

for ( i = 1 ; i<= n ; ++i )

if ( mat[i][i] == 0)

++k;

for ( i = 1 ; i <= n ; ++i )

if ( mat[i][n - i + 1] == 0)

++k;

if ( n % 2 == 1 )

k--;

cout << k;

return 0;

}

Alte întrebări interesante