riccardo74 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/11/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++ |
//prova.cpp //Somma, prodotto e media di tre numeri interi #include <iostream> using std::cout; using std::cin; using std::endl; int main () { int numero1; int numero2; int numero3; cout << "Inserire tre numeri interi: "; cin >> numero1 >> numero2 >> numero3; cout << "La somma e': " <<numero1+numero2+numero3; cout << "\nLa media e': " <<numero1+numero2+numero3/3; cout << "\nIl prodotto e': " << numero1*numero2*numero3; return 0; }
|
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++ |
if (numero1<numero2)
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. |
|
Dark Angel (Normal User)
Newbie
Messaggi: 7
Iscritto: 29/11/2009
|
Ciao.. ti posto come l'ho risolto io:
Codice sorgente - presumibilmente C++ |
int main() { int numero1; int numero2; int numero3; int npiccolo; cout << "Inserire tre numeri interi: "; cin >> numero1 >> numero2 >> numero3; cout << "La somma e': " <<numero1+numero2+numero3; cout << "\nLa media e': " <<(numero1+numero2+numero3)/3; cout << "\nIl prodotto e': " << numero1*numero2*numero3; if (numero1<numero2) npiccolo=numero1; else npiccolo=numero2; if (npiccolo > numero3) npiccolo=numero3; cout << "\nIl numero più piccolo è :" << npiccolo ; system("PAUSE"); return EXIT_SUCCESS; }
|
Usa il main come l'hai fatto tu.. dipende dal programma che lo compila..
Io uso Dev c++
Un altro suggerimento.. attento a quando fai la media.. tu non avevi messo le parentesi e la media veniva sbagliata.
|
|
riccardo74 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/11/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.
|
|
Dark Angel (Normal User)
Newbie
Messaggi: 7
Iscritto: 29/11/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..
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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
|
|
Dark Angel (Normal User)
Newbie
Messaggi: 7
Iscritto: 29/11/2009
|
Io sono andata molto sul semplice .. poi ci sono svariati modi per farlo..
|
|
()
Newbie
Messaggi:
Iscritto:
|
salve raga...
perchè invece di questo
Codice sorgente - presumibilmente C/C++ |
using std::cout;
using std::cin;
using std::endl;
|
non usi
Codice sorgente - presumibilmente C/C++ |
è più semplice |
|
riccardo74 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/11/2009
|
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 |
|
()
Newbie
Messaggi:
Iscritto:
|
questo è il modo per scrivere AND ----> &&
e questo è il modo per scrivere l'OR ---> ||
cosi invece utilizzi il booleano NOT ----> !
|
|