Informatică, întrebare adresată de CaTa0215, 8 ani în urmă

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 griandreea4
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