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

Salut,am incercat sa fac problema,insa nu am reusit....putin ajutor va rog:

Cerinţa

Se dă o matrice cu n linii şi n coloane şi elemente numere naturale. Să se determine câte elemente ale matricei se află pe linii și coloane de sumă egală. Elementul a[i,j] va fi numărat dacă suma elementelor de pe linia i este egală cu cea de pe coloana j.
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 numărul C, 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

2

Explicație

Cele două elemente se află pe linia 2, coloana 3, respectiv linia 5, coloana 3.

Răspunsuri la întrebare

Răspuns de AlexMP
0
#include<iostream>using namespace std;int a[101][101],n;int f(int i,int j){    int s1=0,s2=0;    for (int k=1;k<=n;k++)    {        s1=s1+a[i][k];        s2=s2+a[k][j];    }    if (s1==s2)        return 1;    return 0;}int main(){    int c=0;    cout<<"n="; cin>>n;    for (int i=1;i<=n;i++)        for (int j=1;j<=n;j++)        {            cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];        }    for (int i=1;i<=n;i++)        for (int j=1;j<=n;j++)            if (f(i,j)==1)                c++;    cout<<c;}

AlexMP: #include<iostream>
using namespace std;
int a[101][101],n;
int f(int i,int j)
{
int s1=0,s2=0;
for (int k=1;k<=n;k++)
{
s1=s1+a[i][k];
s2=s2+a[k][j];
}
if (s1==s2)
return 1;
return 0;
}
int main()
{
int c=0;
cout<<"n="; cin>>n;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];
}
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (f(i,j)==1)
c++;
cout<<c;
}
Alte întrebări interesante