👤

Scrieți subprogramul medgeom care primeste prin intermediul a doi parametri a și n un tablou a cu n numere reale (1<=n<=100) și returnează media geometrică a elementelor strict pozitive.
Scrieți un program care citește de la tastatură un tablou cu n elemente reale și calculează media geometrică a elementelor strict pozitive utilizând subprogramul medgeom, iar apoi afișează rezultatul. Dacă șirul nu are elemente pozitive nenule se va afișa NU EXISTA


Răspuns :

Răspuns:

#include <iostream>

#include <math.h>

using namespace std;

float medgeom(int n, float *a){

   float media_geometrica = 1;

   int nr_pozitive = 0;

   for(int i = 0; i < n; i++){

       if(a[i] > 0){

           nr_pozitive++;

           media_geometrica *= a[i];

       }

   }

   if(nr_pozitive == 0){

       return -1.0;

   }else{

       return pow(media_geometrica,1./nr_pozitive);

   }

}

int main()

{

  int n;

  float a[100];

  cin >> n;

  for(int i = 0; i < n; i++){

      cin >> a[i];

  }

  float media = medgeom(n,a);

  if(media == -1){

      cout << "NU EXISTA";

  }else{

      cout << media;

  }

}

Explicație: