24.10.3.24011030. Napisati funkciju “Statistika“ sa četiri parametra “A“, “N“,“Br1“ i “Br2“. Prvi parametar je niz realnih brojeva, a drugi parametar predstavlja broj elemenata u nizu. Funkcija treba da u parametre “Br1“ i “Br2“ respektivno smjesti broj elemenata niza “A“ koji su manji odnosno koji su veći od aritmetičke sredine svih elemenata niza. Na primjer, neka je dat slijedeći niz:
double Niz[10] = {2.8, 4.3, 7.6, 3.9, 5, 1.8, 6, 3, 7.2, 1.4};
Nakon poziva funkcije
Statistika (Niz, 10, P, Q);
promjenljive “P“ i “Q“ (uz pretpostavku da su propisno deklarirane) treba da prime vrijednosti 5 i 4 (Objašnjenje: aritmetička sredina svih elemenata niza je 4.3; elementi niza 2.8, 3.9, 1.8, 3 i 1.4 su manji od 4.3, a elementi niza 7.6, 5, 6 i 7.2 su veći od 4.3). Napisati i kratki testni program u kojem ćete demonstrirati napisanu funkciju na nizu brojeva koji se unose sa tastature. Obavezno testirati program i na slučaju kada su svi uneseni brojevi jednaki!

Opis rješenja:

Listing programa:

//racuna koliko ima manjih, a koliko vecih brojeva od s aritm sredine
#include <iostream>
#include <conio.h>
using namespace std;
void statistika(double[],int,int &,int &);
int main(){
int n,br1,br2;
cin>>n;
const int c(n);
double a[c];
for(int i=0;i<c;i++)
cin>>a[i];
statistika(a,c,br1,br2);
cout<<endl<<br1<<endl<<br2;
getch();
return 0;
}
void statistika(double niz[],int c,int &b1,int &b2){
b1=0;
b2=0;
double s(0);
for(int i=0;i<c;i++)s+=niz[i];
s/=c;
for(int i=0;i<c;i++){
    if(niz[i]>s)b2++;
    else if(niz[i]<s)b1++;
}
}

Ispis na ekranu:

Riješeni zadaci 2    Index