Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115

    [C++] Esercizio sui vettori

    - Realizza un programma che consenta di leggere un insieme di temperature, di calcolare la media e di trovare la deviazione delle singole temperature dalla media ottenuta. (La deviazione è calcolata secondo la seguente formula: D[k]=P[k]-MEDIA). Dove:
    D[K] -> Vettore deviazioni ; P[K] -> Vettore temperature ; MEDIA -> La avriabile che contiene la media.

    Ho provato a risolverlo, mi aiutereste a capire se è scritto bene?

    codice:
    #include <iostream>
    using namespace std;
    
    int main () {
       float Temperatura[], Deviazioni, Somma=0, Media;
       int Risposta, i;
       cout <<"Quante temperature vuoi inserire?"<<endl;
       cin >> Risposta;
       for (i=0; i < Risposta; i++) {
          cout <<"Inserisci la temperatura."<<endl;
          cin >> Temperatura[i];
          Somma = Somma + Temperatura[i];
       }
       Media = Somma / Risposta;
       for (i=0; i < Risposta; i++) {
          Deviazioni = Temperatura[i] - Media;
          cout <<"La deviazione di "<<Temperatura[i]<<" è: "<<Deviazioni<<"."<<endl;
       }
       return 0;
    }

  2. #2
    Hai provato a compilarlo?
    Ti dice:
    codice:
    error: storage size of ‘Temperatura’ isn't known
    Non puoi dichiarare il vettore di temperature in questo modo, inoltre Deviazioni non è un vettore, ma un singolo float, per come l'hai dichiarato. La soluzione è usare l'allocazione dinamica, visto che non sai quante temperature avrai a priori.
    Così funziona:
    codice:
    #include <iostream>
    using namespace std;
    
    int main () {
    //    float Temperatura[], Deviazioni, Somma=0, Media;
       float *Temperatura;
       float *Deviazioni;
       float Somma = 0;
       float Media;
       int Risposta, i;
       cout <<"Quante temperature vuoi inserire?"<<endl;
       cin >> Risposta;
       
       // alloco memoria per il vettore di temperature e deviazioni
       Temperatura = new float[Risposta];
       Deviazioni = new float[Risposta];
       
       for (i=0; i < Risposta; i++) {
          cout <<"Inserisci la temperatura."<<endl;
          cin >> Temperatura[i];
          Somma = Somma + Temperatura[i];
       }
       Media = Somma / Risposta;
       for (i=0; i < Risposta; i++) {
          Deviazioni[i] = Temperatura[i] - Media;
          cout <<"La deviazione di "<<Temperatura[i]<<" è: "<<Deviazioni[i]<<"."<<endl;
       }
       
       // libero la memoria allocata
       delete[] Temperatura;
       delete[] Deviazioni;
       
       return 0;
    }
    Avevi dimenticato di aggiungere l'indice nel for che mostra le deviazioni.
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.