Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    C++ media di un numero indefinito di numeri

    devo creare un programma che utilizzi un for per calcolare e visualizzare la media di un numero di itneri non definito, ovvero determinato da me... e il valore sentinella deve essere 9999.questo è quello che ho fatto però mi da errore nel for
    codice:
    #include <iostream> 
    using namespace std;
     int k; int x; int avg; 
      int main()
     { 
    	cin >> k; 
    
        for(  ;k < 9999; ) 
    	{  cin >> x; 	
    	avg += x;}  
    	cout << "La media è: " << avg/k << endl;  
    	   
       return 0; 
      }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dopo l'inserimento di k, controlla che non sia superiore a 9999, altrimenti assegna a k il valore 9999.

    Poi scrivi un normale for, con una variabile i che conta da 0 a k ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Dopo l'inserimento di k, controlla che non sia superiore a 9999, altrimenti assegna a k il valore 9999.

    Poi scrivi un normale for, con una variabile i che conta da 0 a k ...
    codice:
     #include <iostream> 
    using namespace std;
     int k; int x; int avg;
     int i; 
     int main() { 
    	cin >> k;
      	for( i = 0; i <= (k != 9999); i++ ) 
    	{  cin >> x; 
    		avg += x;}  
    		cout << "La media è: " << avg/k << endl; 
     	
        return 0;
     }
    ho modificato il codice ma ancora nn va bene ...ad esempio se metto 3 mi fa inserire solo due x e si blocca senza k io abbia inserito 9999 :S..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il controllo che k non sia maggiore di 9999 non va nella for ... va subito dopo la cin ... non è difficile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    Il controllo che k non sia maggiore di 9999 non va nella for ... va subito dopo la cin ... non è difficile ...
    ma dovrebbe essere x diverso da 9999 ..poichè k lo inserisco solo all'inizio x sapere qnt cifre sn e così sapere per qnt bisogna dividere svg... qndi dovrei inserire la condizione k x diverso 9999 nel for ..

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se scrivi senza abbreviazioni da sms, forse ci capiamo ... Questo è un forum non un cellulare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Se scrivi senza abbreviazioni da sms, forse ci capiamo ... Questo è un forum non un cellulare ...

    ahahah ..pardon mi è scappato..
    cmq dicevo che dovrebbe essere x diverso da 9999 ..poichè k lo inserisco solo all'inizio per sapere quante cifre sono e così sapere per quanto bisogna dividere avg... quindi dovrei inserire la condizione x diverso 9999 nel for credo ..

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... allora per capirci

    codice:
    #include <iostream> 
    using namespace std;
    
    int main() 
    {
       int k, i;
       double x, avg;
    
       cin >> k;
       if(k>9999) k = 9999;
    
       for( i=0; i<k; i++ ) 
       {
         cin >> x; 
         avg += x;
       }  
    
       cout << "La media è: " << avg/k << endl; 
     	
       return 0;
     }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Originariamente inviato da oregon
    No ... allora per capirci

    codice:
    #include <iostream> 
    using namespace std;
    
    int main() 
    {
       int k, i;
       double x, avg;
    
       cin >> k;
       if(k>9999) k = 9999;
    
       for( i=0; i<k; i++ ) 
       {
         cin >> x; 
         avg += x;
       }  
    
       cout << "La media è: " << avg/k << endl; 
     	
       return 0;
     }


    si così funziona ..però quel if è inutile ..poichè si stoppa automaticamente.. è il fatto che si debba stoppare solo quando legge 9999 inserito da me il problema.

    ovvero k io lo inserisco solo perchè sennò poi dovrei trovare un modo per far contare quanti valori inserisco per poi poter effettuare la media..

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Q.Pagliuca
    si così funziona ..però quel if è inutile ..poichè si stoppa automaticamente.. è il fatto che si debba stoppare solo quando legge 9999 inserito da me il problema.

    ovvero k io lo inserisco solo perchè sennò poi dovrei trovare un modo per far contare quanti valori inserisco per poi poter effettuare la media..
    Un attimo ... la "sentinella" è uno dei numeri inseriti che termina la sequenza (e che non fa parte della media) oppure è il massimo "numero di numeri inseribili"?

    L'esempio che ti ho fatto appartiene alla seconda ipotesi ...

    Nella prima ipotesi, il codice diventa

    codice:
    #include <iostream> 
    using namespace std;
    
    int main() 
    {
       int k;
       double x, avg;
    
       x = avg = 0.0;
       k = 0;
       
       for( ; x!=9999.0; k++ ) 
       {
         avg += x;
         cin >> x; 
       }  
    
       cout << "La media è: " << avg/(k-1) << endl; 
     	
       return 0;
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.