Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    17

    C++,problemi con il double

    /*Esercizio 3
    Siano assegnati in ingresso, da tastiera, un vettore di double V ed il suo riempimento r. Si scriva un
    programma che calcoli la media degli elementi di V e conti il numero num di elementi il cui valore
    è inferiore a tale media. Si stampino quindi il vettore V, la media calcolata ed il risultato del
    conteggio.
    Il programma deve essere articolato in funzioni.
    Esempi
    INPUT:
    r = 7
    V = 2.5 5.8 2.0 4.3 7.0 9.0 4.1
    OUTPUT:
    media = 4.957143
    num = 4
    INPUT:
    r = 4
    V = 5.3 1.2 8.4 7.8
    OUTPUT:
    media = 5.675
    num = 2*/
    alla funzione calcolo della media mi da come errore 39 I:\Elementi di cannot convert `double*' to `double' for argument `3' to ` void calcolomedia(double, int, double, double)'
    non so se questa cosa dipende da una conoscenza lacunosa del double oppure ho fatto qualche errore stupido,cmq sta di fatto che non capisco come risolverlo.....
    codice:
    using namespace std;
    void input (int &r,double V[]);
    void calcolomedia(double s,int r,const double V,double media);
    void conta(int r,const double V[],double media,int &nmag);
    void stampa (int r,double V[],double media,int nmag);
    int main(int argc, char *argv[])
    {
    double V[150];
    int r;
    double s;
    double media;
    int nmag;
    
    input(r,V);
    calcolomedia(s,r,V,media);
    conta(r,V,media,nmag);
    stampa(r,V,media,nmag);
    
    system("PAUSE");	
    return 0;
    }
    void input (int &r,double V[]){
    int i;
    cout<<"inserisci riempimento"<<endl;
    cin>>r;
    for(i=0;i<r;i++){
    cout<<"inserisci valore numero"i+1<<endl;
    cin>>V[i];
    }
    }
    int calcolomedia(double s,int r,const double V,double media)
    {int i;
    s=0;
    for(i=0;i<r;i++){
    s=s+V[i];
    }
    media=s%i;
    return media;
    }
    void conta(int r,const double V[],double media,int &nmag)
    int i;{
    nmag=0;
    for(i=0;i<r;i++){
    if(V[i]>media){
    nmag=nmag+1;
    }
    } 
    }
    void stampa (int r,double V[],double media,int nmag){
    int i;
    for(i=0;i<r;i++){
    cout<<"l'array è"<<endl;
    cin>>V[i]>>endl;
    }
    cout<<"il valore medio è"<<media<<endl;
    cout<<"i valori maggiori della media sono"<<nmag<<endl;
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Ok usare il tag CODE... ma non serve a niente se il codice non è indentato in partenza!

    Per l'errore su calcolamedia, dai un'occhiata alla firma della funzione, in particolare a come dichiari V...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    non sono bravissima in C, ma impara a leggere quello che ti viene detto

    errore 39 I:\Elementi di cannot convert `double*' to `double' for argument `3' to ` void calcolomedia(double, int, double, double)'

    calcolomedia ha questa signature

    codice:
    void calcolomedia(double s,int r,const double V,double media);
    a cui passi delle variabili, non puntatori.
    Tu provi ad usarlo in modo errato perché
    codice:
    double V[150];
    //....
    calcolomedia(s,r,V,media);
    come vedi V puoi vederlo come un puntatore a double (double*). Il sistema ti dice che non riesce a "vedere" un puntatore a double come un valore double.
    Soluzione? Presumo che tu debba cambiare la signature della funzione (visto che ti interessa come terzo parametro un array di double)
    RTFM Read That F*** Manual!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    17

    Risolto

    Il problema dipendeva dal fatto che mi ero dimenticato le parentesi quadre! cmq grazie mille e scusate per i piccoli pasticci con il Code e che sono da poco quiXD

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    17

    Risolto

    Ho risolto,l'errore dipendeva dal fatto che mi ero dimenticato le [] nella signatura della funzione calcolomedia! cmq grazie e scusatemi per i piccoli pasticci con il CODE ,sto imparando ora ad usarli!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.