Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Programma C++

  1. #1

    Programma C++

    Ciao a tutti ho un piccolo problema con un programma in C++.
    Questo è il testo:
    programma che legga da tastiera una lunghezza ignota a priori di numeri interi positivi. il programma a
    partire dal primo numero inserito, stampa ogni volta la media di tutti i valori. terminare quando il numero inserito è negativo
    ecco il codice che ho provato a fare : la prima media la fa giusta le altre no

    #include <iostream>


    using namespace std;


    int main() {
    int num;
    double media=0;
    int cont=1;
    while(num>=0) {
    cout<<"inserire un numero \n";
    cin>>num;
    cout<<"il numero inserito e' "<<num<<"\n";
    media=(media+num)/cont;
    cout<<"la media vale "<<media<<"\n";
    cont++;
    }

    system("PAUSE");
    return 0;
    }




    Grazie per il disturbo

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    il modo più semplice per farlo, secondo me, è tenere due variabili: una in cui memorizzi la somma di tutti gli elementi immessi, l'altra che fa da contatore e ti dice quanti elementi sono stati inseriti. Ad ogni iterazione la tua media è semplicemente il rapporto tra queste variabili.

  3. #3
    In alternativa, e soprattutto per evitare potenziali problemi di overflow, è opportuno usare l'apposita formuletta di cumulative moving average, che - in via del tutto eccezionale - è riportata abbastanza correttamente perfino su wikipedia.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  4. #4
    Grazie mille ti dovrei chiedere un altro piacere...
    quando inserisco un numero negativo mi visualizza lo stesso le istruzioni del programma come faccio a far terminare proprio il programma appena inserisco uno negativo?

  5. #5
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Dopo il cin >> num metti un if(num > 0) che racchiuda il resto del ciclo e sei a posto. Il while ti dice che non verrà fatta un'altra iterazione, ma quella corrente è già partita. Quindi devi fare un ulteriore controllo all'interno del ciclo.

  6. #6
    ah grazie ancora ciao buona giornata

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.