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

Să se determine valoarea minimală dintre elementele tabloului și numărul de
elemente cu această valoare, precum și media aritmetică a tuturor elementelor nenule în tablou.Scrieți un program care citește de la tastatură numărul n>1 de elemente ale
tabloului, apoi citește de la tastatură aceste n elemente ale tabloului, efectuează
calculele indicate în variantă și afișează pe ecran rezultatul in c++ dau coroana ca fiind cel mai bun raspuns de nota 10

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

#include <iostream>

void citesteValoriInTablou(int tablouNumere[], int dimensiuneVector);

int aflaValoareaMinima(int tablouNumere[], int dimensiuneVector);

int cateElementeEgaleCuMinimulGasit(int tablouNumere[], int dimensiuneVector, int minimulGasit);

double calculeazaMediaAritmetica(int tablouNumere[], int dimensiuneVector);

int main() {

 int tablouNumere[100] = {}, cateNumere;

 std::cout << "Introdu n: ";

 std::cin >> cateNumere;

 /* citim numerele în tablou! */

 citesteValoriInTablou(tablouNumere, cateNumere);

 /* căutăm minimul din tablou */

 int minimulGasit = aflaValoareaMinima(tablouNumere, cateNumere);

 /* numărăm de câte ori apare minimul în tablou */

 int contorAparitiiMinim = cateElementeEgaleCuMinimulGasit(tablouNumere, cateNumere, minimulGasit);

 /* calculăm media aritmetică */

 double mediaAritmetica = calculeazaMediaAritmetica(tablouNumere, cateNumere);

/* și la final afișăm valorile calculate */

 std::cout << "Minimul din tablou este " << minimulGasit << ", acesta apare de " << contorAparitiiMinim

     << " ori iar media aritmetica a elementelor nenule este " << mediaAritmetica << "!\n";

 return 0;

}

void citesteValoriInTablou(int tablouNumere[], int dimensiuneVector) {

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

   std::cout << "tablouNumere[" << i << "] = ";

   std::cin >> tablouNumere[i];

 }

}

int aflaValoareaMinima(int tablouNumere[], int dimensiuneVector) {

 int minimulGasit = INT_MAX;

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

   /* parcurgem tabloul, dacă numărul curent e mai mic decât minimul actual actualizăm minimul */

   if (tablouNumere[i] < minimulGasit) {

     minimulGasit = tablouNumere[i];

   }

 }

 return minimulGasit;

}

int cateElementeEgaleCuMinimulGasit(int tablouNumere[], int dimensiuneVector, int minimulGasit) {

 int contorNumere = 0;

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

   /* parcurgem tabloul, dacă numărul curent e egal cu minimul găsit incrementăm contorul */

   if (tablouNumere[i] == minimulGasit) {

     contorNumere++;

   }

 }

 return contorNumere;

}

double calculeazaMediaAritmetica(int tablouNumere[], int dimensiuneVector)

{

 double mediaAritmetica = 0.0, contorNumereNenule = 0.0;

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

   /* parcurgem tabloul, dacă numărul curent e diferit de 0 îl adunăm la medie și incrementăm contorul cu numerele găsite ca să împărțim la final la câte numere găsim */

   if (tablouNumere[i] > 0) {

     mediaAritmetica += tablouNumere[i];

     contorNumereNenule++;

   }

 }

 return mediaAritmetica / contorNumereNenule;

}

Alte întrebări interesante