Sunteți pe pagina 1din 2

#include <iostream>

#include<fstream>
#include<iomanip>
using namespace std;
/**

Problema celor 4 triunghiuri


O matrice pătratică este împărţită de cele două diagonale în patru triunghiuri.
Să se determine suma elementelor din cele patru triunghiuri.
Elementele de pe diagonale fac parte din triunghiurile respective.

p q
1 2 3 4 5
6 7 8 9 0
1 2 3 4 5
6 7 8 9 0
q 1 2 3 4 5

*/

void citire(int a[20][20],int &n)


{
ifstream f("date.in");
int i,j;
f>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
f>>a[i][j];
}

void afisare(int a[20][20],int n)


{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<setw(6)<<a[i][j];
cout<<endl;
}
}
int trSus(int a[20][20], int n)
{ int S=0;
int p=0, q=n-1;
while(p<=q)
{
for(int i=p;i<=q;i++)
S+=a[p][i];
p++;
q--;
}
return S;
}

int trStanga(int a[20][20],int n)


{ int S=0;
int p=0, q=n-1;
while(p<=q)
{ for(int i=p;i<=q;i++)
S+=a[i][p];
p++;
q--;
}
return S;
}

int trDreapta(int a[20][20],int n)


{ int S=0;
int p=0, q=n-1;
while(p<=q)
{
for(int i=p;i<=q;i++)
S+=a[i][q];
p++;
q--;
}
return S;
}

int trJos(int a[20][20], int n)


{ int S=0;
int p=0, q=n-1;
while(p<=q)
{
for(int i=p;i<=q;i++)
S+=a[q][i];
p++;q--;

}
return S;
}

int main()
{
int a[20][20],n;
citire(a,n);
afisare(a,n);
cout<< "Suma elem tr sus="<<trSus(a,n)<<endl;
cout<< "Suma elem tr stanga="<<trStanga(a,n)<<endl;
cout<< "Suma elem tr dreapta="<<trDreapta(a,n)<<endl;
cout<< "Suma elem tr jos="<<trJos(a,n)<<endl;
return 0;
}

S-ar putea să vă placă și