Informatică, întrebare adresată de ginomarian2, 9 ani în urmă

Salut,cum rezolv aceasta problema :

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


Exemplu

Date de intrare

5
3 1 8 5 4
7 8 5 1 2
2 2 6 7 3
9 8 1 3 6
7 5 3 1 7

Date de ieșire

10 18 19 20

Răspunsuri la întrebare

Răspuns de peterbrw
15
#include<iostream>
#include<fstream>
#define N 100
using namespace std;
ifstream f ("fisier.txt");
int main(){
    int a[N][N], b[N], n, i, j, s1=0, s2=0, s3=0, s4=0, c=0, aux=0;
    f>>n;
    for(i=0; i<=n-1; i++){
            for(j=0; j<=n-1; j++){
                    f>>a[i][j];
            }
    }
    for(i=0; i<=n-1; i++){
            for(j=0; j<=n-1; j++){
                    if(i<j && i+j<n-1){
                            s1=s1+a[i][j];
                            b[0]=s1;
                            }
                    else{if(i+j<n-1 && i>j){
                            s2=s2+a[i][j];
                            b[1]=s2;
                           }
                            else{if(i>j && i+j>n-1){
                                    s3=s3+a[i][j];
                                    b[2]=s3;}
                                    else{if(i<j && i+j>n-1){
                                            s4=s4+a[i][j];
                                            b[3]=s4;

                                    }
                                    }
                            }
                    }
            }
    }

    for(i=0; i<=2; i++)
        for(j=i+1; j<=3; j++)
                if(b[i]>b[j]){
                aux=b[i];
                b[i]=b[j];
                b[j]=aux;
        }

    for(i=0; i<=3; i++)
        cout<<b[i]<<" ";
}

n - numarul de linii si de coloane il citesti dintr-un fisier, la fel si matricea.
Alte întrebări interesante