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++ - Esercizio sull'input di numeri interi
Forum - C/C++ - Esercizio sull'input di numeri interi

Avatar
riccardo74 (Normal User)
Newbie


Messaggi: 6
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 14:24
Giovedì, 17/12/2009
Ciao ragazzi non riesco a risolvere l'ultima parte di questo esercizio:

Chiedete che il programma chieda all'utente di inserire 3 numeri interi e poi calcoli la media, il prodotto e la somma, e poi dica qual è il più piccolo e quale il più grande.

Questo è il mio codice

Codice sorgente - presumibilmente C++

  1. //prova.cpp
  2. //Somma, prodotto e media di tre numeri interi
  3.  
  4. #include <iostream>
  5. using std::cout;
  6. using std::cin;
  7. using std::endl;
  8.  
  9.  
  10. int main ()
  11.  
  12. {
  13. int numero1;
  14. int numero2;
  15. int numero3;
  16.  
  17.  
  18. cout << "Inserire tre numeri interi: ";
  19. cin >> numero1 >> numero2 >> numero3;
  20.  
  21.  
  22. cout << "La somma e': " <<numero1+numero2+numero3;
  23. cout << "\nLa media e': " <<numero1+numero2+numero3/3;
  24. cout << "\nIl prodotto e': " << numero1*numero2*numero3;
  25.  
  26. return 0;
  27. }



Non risco a capire come farmi dire il più grande e il più piccolo. Tenete conto che è un esercizio del 2° capitolo di Fondamenti di programmazione e l'unica funzione introdotta è IF.

Se scrivo infatti:

Codice sorgente - presumibilmente C/C++

  1. if (numero1<numero2)
  2. cout << "\nIl numero più piccolo è :" << numero1



così va bene, ma vale solo per 2 numeri interi, come si fa con 3 o più numeri? purtroppo non viene data la soluzione.

PM Quote
Avatar
Dark Angel (Normal User)
Newbie


Messaggi: 7
Iscritto: 29/11/2009

Segnala al moderatore
Postato alle 15:07
Giovedì, 17/12/2009
Ciao.. ti posto come l'ho risolto io:
Codice sorgente - presumibilmente C++

  1. int main()  
  2. {
  3.     int numero1;
  4.     int numero2;
  5.     int numero3;
  6.     int npiccolo;
  7.  
  8.  
  9. cout << "Inserire tre numeri interi: ";
  10. cin >> numero1 >> numero2 >> numero3;
  11.  
  12.  
  13. cout << "La somma e': " <<numero1+numero2+numero3;
  14. cout << "\nLa media e': " <<(numero1+numero2+numero3)/3;
  15. cout << "\nIl prodotto e': " << numero1*numero2*numero3;
  16.  
  17.   if (numero1<numero2)
  18.        npiccolo=numero1;
  19.   else
  20.         npiccolo=numero2;
  21.   if (npiccolo > numero3)
  22.         npiccolo=numero3;
  23.  
  24.  
  25. cout << "\nIl numero più piccolo è :" << npiccolo ;
  26.  
  27.     system("PAUSE");
  28.     return EXIT_SUCCESS;
  29. }




Usa il main come l'hai fatto tu.. dipende dal programma che lo compila..
Io uso Dev c++ :rofl:

Un altro suggerimento.. attento a quando fai la media.. tu non avevi messo le parentesi e la media veniva sbagliata.

PM Quote
Avatar
riccardo74 (Normal User)
Newbie


Messaggi: 6
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 16:52
Giovedì, 17/12/2009
Grazie per la risposta, avevo pensato anch'io ad un ciclio IF ELSE, però il 2° capitolo non l'aveva ancora introdotto, quindi non sarebbe stato da utilizzare il tuo codice.

C'è un modo per risolvero in maniera più semplice ancora?

Grazie per le parentesi.

PM Quote
Avatar
Dark Angel (Normal User)
Newbie


Messaggi: 7
Iscritto: 29/11/2009

Segnala al moderatore
Postato alle 20:39
Giovedì, 17/12/2009
Più semplice? io penso che così sia semplice.. almeno per chi sta imparando il C++..
Se vuoi usare solo IF puoi fare così:
if (numero1<numero2 && numero1<numero3)
     cout << "\nIl numero più piccolo è :" << numero1 ;
  if (numero2<numero1 && numero2<numero3)
     cout << "\nIl numero più piccolo è :" << numero2 ;
  if (numero3<numero1 && numero3<numero2)
     cout << "\nIl numero più piccolo è :" << numero3 ;
    
Oppure usando sempre una variabile di supporto e mettendo una sola cout..
Più semplice di così non saprei... ribadendo che stai studiando l'inizio =D

PS. magari non sai che  è && questo è la AND..

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 10:56
Venerdì, 18/12/2009

non credo abbia rilevanza "a quale capitolo sei", se una determinata cosa si fa in un modo la fai. Tendenzialmente "te ne sbatti" se non l'hai ancora visto, perchè per un problema del genere così semplice più di tanto il codice è sempre quello. :)

cmq fai 3 if con due and, in questo modo sai se il valore non testato nei due and è più piccolo/grande :)

PM Quote
Avatar
Dark Angel (Normal User)
Newbie


Messaggi: 7
Iscritto: 29/11/2009

Segnala al moderatore
Postato alle 18:28
Venerdì, 18/12/2009
Io sono andata molto sul semplice .. poi ci sono svariati modi per farlo..

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:00
Sabato, 19/12/2009
salve raga...

perchè invece di questo
Codice sorgente - presumibilmente C/C++

  1. using std::cout;
  2. using std::cin;
  3. using std::endl;



non usi
Codice sorgente - presumibilmente C/C++

  1. using namespace std;


è più semplice :rofl:

PM Quote
Avatar
riccardo74 (Normal User)
Newbie


Messaggi: 6
Iscritto: 28/11/2009

Segnala al moderatore
Postato alle 15:20
Sabato, 19/12/2009
Testo quotato

Postato originariamente da HeDo:


cmq fai 3 if con due and, in questo modo sai se il valore non testato nei due and è più piccolo/grande :)



Ecco, è proprio l'AND che intendevo ma non sapevo come tradurre in C++ questa istruzione, che adesso mi pare di aver capito essere "&&". Era proprio quello che volevo sapere, peccato che sul manuale non lo abbiamo specificato e sono diventato matto per capire come srivere un AND.

Grazie

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:41
Sabato, 19/12/2009
questo è il modo per scrivere AND ----> &&
e questo è il modo per scrivere l'OR ---> ||
cosi invece utilizzi il booleano NOT ----> !
8-|

PM Quote