Buna ziua, am nevoie de ajutor la urmatoarea problema:
Se citeste un tablou cu n linii si n coloane, numere intregi.Se cere suma elementelor aflate deasupra diagonalei principale. Programul se va realiza astfel:
-sa se scrie un subprogram de citire a unei matrice cu n linii si n coloane
-sa se scrie un subprogram de tiparire a unei matrice cu n linii si n coloane
-sa se scrie un subprogram care aduna elementele aflate deasupra diagonalei principale.
Functia main() rezulta din apelul acestor subprograme.

1

Răspunsuri

2014-04-19T19:07:58+03:00
#include<iostream>
#include<iomanip>
using namespace std;

void citire(int a[][20],int &n)
{int i,j;
cout<<"n=";cin>>n;
 for (i=1;i<=n;i++)
  for (j=1;j<=n;j++)
  {cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}

}
void afisare(int a[][20],int n)
{int i,j;

for (i=1;i<=n;i++)
 {for (j=1;j<=n;j++)
  cout<<setw(3)<<a[i][j];
  cout<<endl;
}
}
int suma_diagonala(int a[][20],int n)
{int s=0,i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
  if (i+j<n+1)
  s=s+a[i][j];

return s;
}

int main()
{int a[20][20],n;
cout<<"a)Citire:"<<endl;
citire(a,n);
cout<<"b)Afisare:"<<endl;
afisare(a,n);
cout<<"c)Suma:"<<endl;
cout<<suma_diagonala(a,n);
}

int suma_diagonala(int a[][20],int n)
{int s=0,i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if (i+j<n+1)
s=s+a[i][j];

return s;
}

int main()
{int a[20][20],n;
cout<<"a)Citire:"<<endl;
citire(a,n);
cout<<"b)Afisare:"<<endl;
afisare(a,n);
cout<<"c)Suma:"<<endl;
cout<<suma_diagonala(a,n);
}