Din fisierul matrice.in se citeste un numar natural n (n<=10) si apoi se citeste o matrice patratica cu n linii si n coloane avand elemente numere naturale cu cel mult 2 cifre fiecare. Afisati in fisierul matrice.out elementele de pe diagonala principala a matricei care au proprietatea ca sunt egale cu cel mai mare divizor comun al sumei de pe linia si al produsului de pe coloana pe care se afla.
Se vor scrie si folosi functii pentru:
- citirea matricei
- calculul cmmdc
- calculul sumei elementelor de pe o linie a matricei
- calculul produsului elementelor de pe o coloana a matricei
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
#include<fstream>
using namespace std;
int a[100][100],n;
void citire()
{
ifstream f("matrice.in");
f>>n;
int i,j;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
f>>a[i][j];
}
int cmmdc(int a,int b)
{
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
return a;
}
}
int suma(int x)
{
int i,s=0;
for(i=1; i<=n; i++)
s=s+a[x][i];
return s;
}
int produs(int y)
{
int i,p=1;
for(i=1; i<=n; i++)
p=p*a[i][y];
return p;
}
int main()
{
citire();
ofstream g("matrice.out");
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(i==j&&a[i][j]==cmmdc(suma(i),produs(j)))
g<<a[i][j]<<" ";
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Alte limbi străine,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă