Oppure

Loading
17/12/09 13:24
riccardo74
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

//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:

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.
aaa
17/12/09 14:07
Dark Angel
Ciao.. ti posto come l'ho risolto io:

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++ :rofl:

Un altro suggerimento.. attento a quando fai la media.. tu non avevi messo le parentesi e la media veniva sbagliata.
aaa
17/12/09 15:52
riccardo74
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.
aaa
17/12/09 19:39
Dark Angel
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..
aaa
18/12/09 9:56
HeDo

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 :)
aaa
18/12/09 17:28
Dark Angel
Io sono andata molto sul semplice .. poi ci sono svariati modi per farlo..
aaa
19/12/09 9:00
salve raga...

perchè invece di questo
using std::cout; 
using std::cin; 
using std::endl; 


non usi
using namespace std;

è più semplice :rofl:
19/12/09 14:20
riccardo74
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
aaa