Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - calcolo media ponderata
Forum - C/C++ - calcolo media ponderata

Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 15:33
Martedì, 14/04/2009
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{

         float pesi[100],num=0;
    int I=0;
    float valori[100],memoria=0;
    cout<<"da quanti valori è composta la colonna dei pesi?  ";
    cin>>num;
    for(I=1;I<=num;I++)
    {
        cout<<"inserisci i valori delle X singolarmente"<<endl<<"se sono seriazioni inserisci la somma dei due valori fratto 2!!!!"<<endl;
        cout<<"inserisci il "<<I<<"valore  ";    
        cin>>valori[I];
    }
    cout<<"ora inserisci i pesi!!";
    for(I=1;I<=num;I++)
    {
        cout<<"inserisce il"<<I<<"peso";
        cin>>pesi[I];
    }
    float somma=0;
    for(I=0;I<num;I++)
    {
        somma=somma+pesi[I];
        memoria=memoria+(valori[I]*pesi[I]);
    }
    float media=0;
    media=memoria/somma;
    cout<<"la media è :  "<<media<<endl;
    system("pause");
    return 0;
}



Ho fatto questo programmino per il calcolo della media ponderata ma ho un problema,quando arrivo ad inserire i valori delle x se metto un valore con la virgola mi salta tutto e mi stampa media =1
Mi sapete dire come modificare il codice per far si che possa accettare anche i numeri con la virgola, grazie a chiunque mi dà una mano :d

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 17:28
Martedì, 14/04/2009
l'errore sta nel fatto che i vettori in c/c++ partono da 0 e non da 1
quando nei cicli metti I = 1 tu salti la prima cella del vettore che ti sballa tutto il conto....
devi mettere

for(i = 0; i < num; i++)

PM Quote