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:
#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;
}