III.2 testul 8 (antrenament) 2021

Subiectul al III-lea – Exerciţiul 2

    Scrieți un program C/C++ care citește de la tastatură numărul natural n (n aparține [ 5,50]) și elementele unui tablou bidimensional cu n linii și n coloane,  numere naturale  din intervalul  [0,102].  Programul afișează pe ecran suma numerelor din zona delimitată de cele două diagonale și ultima coloană a tabloului, ca în exemplu.
Exemplu: pentru n=7 și tabloul alăturat, se afișează pe ecran 12.
  • variabilă de tip tablou bidimensional, declarată conform cerinței

int a[51][51];

  • date citite conform cerinței

cin>>n;

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

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

        cin>>a[i][j];

  • se parcurge matricea verificând dacă elementul se află deasupra diagonalei principale(i<j), sub diagonala secundară(i+j>n+1) și nu se află pe ultima coloană(j!=n), dacă sunt indeplinite cele trei condiții se actualizează valoarea sumei(s=s+a[i][j]). 

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

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

            if(i<j&&i+j>n+1&&j!=n)

            s=s+a[i][j];

  • se afișează valoarea sumei

cout<<s;

#include <iostream>
using namespace std;
int main()
{
    int a[51][51],n,i,j,s=0;
    cin>>n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        cin>>a[i][j];
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if(i<j&&i+j>n+1&&j!=n)
            s=s+a[i][j];
        cout<<s;
    return 0;
}