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

Cerinţa
Se dă o matrice cu n linii şi n coloane şi elemente numere naturale. Cele două diagonale delimitează în matrice 4 zone:

NORD – elementele situate deasupra diagonalei principale şi deasupra celei secundare
EST – elementele situate deasupra diagonalei principale şi sub cea secundară
SUD – elementele situate sub diagonala principală şi sub cea secundară
VEST – elementele situate sub diagonala principală şi deasupra celei secundare
Să se afişeze, în ordine crescătoare, sumele elementelor din cele patru zone.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n*n numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.

Date de ieşire
Programul afișează pe ecran numerele S1 S2 S3 S4, separate printr-un spaţiu, cu semnificaţia precizată.

Restricţii şi precizări
1 ≤ n ≤ 100
elementele matricei vor fi mai mici decât 1.000

Răspunsuri la întrebare

Răspuns de boiustef
3

#include <iostream>

#include <algorithm>

using namespace std;

int v[4];

int main()

{

   int n, num, i, j, N=0, E=0, S=0, W=0;

   cin >> n;

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

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

       {

           cin >> num;

           if (i<j && i+j<n+1) N=N+num;

           if (i<j && i+j>n+1) E=E+num;

           if (i>j && i+j>n+1) S=S+num;

           if (i>j && i+j<n+1) W=W+num;

       }

   v[0]=N; v[1]=E; v[2]=S; v[3]=W;

   sort(v, v+4);

   for (i=0; i<4; ++i)

           cout << v[i] << " ";

   return 0;

}


Răspuns de Daniel4761
2

#include <iostream>

using namespace std;

int main()

{

int a[101][101], n, i, j, s1=0, s2=0, s3=0, s4=0;

cout<<"n="; cin>>n;

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

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

  cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];

 }

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

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

  if(j>i && j<n-i+1) //NORD

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

  else if(j>i && j>n-i+1) //EST

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

  else if(j<i && j>n-i+1) //SUD

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

  else if(j<i && j<n-i+1) //VEST

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

cout<<endl;

cout<<s1<<' '<<s2<<' '<<s3<<' '<<s4;

return 0;

}

Alte întrebări interesante