Buonasera a tutti stavo cercando di risolvere un problema,eccovi il testo:
Avendo un vettore con dei valori caricati da input far inserire un elenco di valori da tastiera e:
a) verificare che i valori siano presenti con la ricerca binaria
b) fare la media dei valori inseriti da tastiera
c) contare i valori maggiori della media
visualizzare gli output

io ho aggito in questa maniera

funzione per caricamento vettore,inserimento numero,funzione per la ricerca dicotomica,verifica (tramite un valore bool restituito dalla funzione) se è presente o meno e comunicarlo all'utente,[questa cosa non so se sia molto corretta ma ho visto che funziona e lo usata] inserisco in un secondo vettore che ho chiamato valori[] i numeri inseriti,particolarità di questo vettore è che ad ogni ciclo la sua dimensione aumenta di uno così da poter contenere sempre tutti i valori inseriti (poichè all'inserimento di un valore la sua dimensione (N) viene incrementata),funzione per la media dei valori,richiedo (do-while) se vuole inserire altri valori,se ha finito di inserire,funzione per verificare i valori (che sono dentroi il vettore valori[]) sono superiori alla media e poi stampa i risultati...ma mi da qualche errore,volevo risolvarli con voi anche perchè non riesco a capirli,ecco il codice:

codice:
#include <iostream>
#include <stdlib.h>
#define dim 5
using namespace std;

void carica (int vett[],int dim);
int ricerca (int vett[],int dim,int num);
double media (int dim,int num);
void contatore (int valori[],int media,int dim,int &contatore,);
char cambio_carattere (char risp);

int main()
{  int vett[dim],num,N=0,i=0,media,contatore=0,valori[N]; //N è il numero progressivo della dimensione del vettore mentre i è il numero attuale del contenuto del vettore
   bool a;
   char risp,risp2;

   carica (vett,dim);
   do{
   cout<<"inserisci num: ";
   cin>>num;
   cout<<'\n'<<'\n';
   a=ricerca(vett,dim,num);
   if (a==1)
    cout<<"il numero "<<num<<" è presente nel vettore inserito."<<'\n';
    else
        cout<<"il numero "<<num<<" non è presente nel vettore inserito."<<'\n'<<'\n';
    N++;
    valori[i]=num;
    i++;
    media= media(dim,num);
    cout<<"vuoi inserire altri numeri? ";
    cin>>risp2;
    cout<<'\n';
    risp=cambia_carattere(risp2);
   }
   while (risp=='S');
   contatore(valori,media,dim,contatore);
   cout<<"la media dei valori inseriti è: "<<media<<'\n'<<"i valori maggiori della media sono: "<<contatore<<'\n'<<'\n';
   system ("pause");
   return 0;
}

void caricavettore(int vett[],int dim){
for (int i=0;i<dim;i++){
        cout<<"inserisci l'elemento "<<i+1<<" del vettore ";
        cin>>vett[i];
        cout<<'\n';
}
}


int ricerca(int vett[],int dim,int num){
int s=0,sx=0,dx=0,md;
do{
md=(sx+dx)/2;
if ((vett[sx]==num) || (vett[dx]==num) || (vett[md]==num))
s=1;
else if (vett[md]<N)
    sx=sx+1;
else
    dx=md-1;
}
while ((sx<=dx) && (s==0));
    return s;
    }

double media (int dim,int num){
double media,somma;
media=(somma+num)/dim;
return media;
}

void contatore (int valori,int media,int dim,int &contatore){
    for (int i=0;i<dim-1;i++){
        if (media>valori[i])
            contatore++;
    }
    }

char cambio_carattere (char risp){

    risp=toupper(risp);
    return risp;
}
i primi errori che mi da sono alla riga 6,7,8,9 l'errore è "|error: expected ',' or '...' before numeric constant" non ho capito a cosa si riferisce per "numeric costant" ovvero costante numerica ò.ò credo sia dim (dichiarata all'inizio) ma non capisco cosa devo mettere.