PDA

Visualizza la versione completa : [C++] Determinare minimo e massimo con ciclo while()


Mauri94
22-01-2011, 21:45
Salve ragazzi, è da poco che stò studiando il ciclo "while" in C++. Più o meno ho capito la sua funzione. Ma provando a svolgere alcuni problemi, ho trovato difficoltà nel svolgere una cosa simile:

Crea un programma in C++ che dati in input N numeri, determini il massimo ed il minimo.

Dunque, il problema l'ho capito, nell'ambito "Matematico". Basterebbe creare delle variabili A,B,C,MAX, per esempio, e confrontarle in questo modo: A > B -> MAX = A / ALTRIMENTI -> MAX = B / MAX > C = MAX è il più grande, altrimenti lo è C.
Il problema è che io ho il concetto di questo problema fino a 3 numeri, ma come posso farlo in un ciclo di N volte? E oltre a questo, come faccio a calcolare anche il minimo contemporaneamente nel ciclo? Io avevo provato a strutturare un algoritmo, ma non ci vuole un genio per capire che sia assolutamente errato, oltre a non avere il secondo punto che richiede questo problema, cioè il minimo. Ma comunque ve lo scrivo:




#include <iostream>
int main ()
{int N, CONT, A, B, C;
CONT = 0;
cout <<"Su quanti numeri vuoi effettuare il MAX ed il MIN? ";
cin >> N;
while (CONT < N) {
CONT = CONT + 1;
cout <<"Inserisci il primo (A), il secondo (B), ed il terzo (C) numero ";
cin >> A,B,C;
if (A > B) {
MAX = A;
} else {
MAX = B;
}
if (MAX > C) {
MAX = MAX;
} else {
MAX = C;
}
}
return 0;
}


E' assolutamente errato, oltre a non esserci neanche la parte del MIN. Ma non riesco proprio a capire, mi aiutereste? Grazie a tutti.

XAlbeX
22-01-2011, 22:13
while (CONT < N) {
CONT = CONT + 1;
cout <<"Inserisci il primo (A), il secondo (B), ed il terzo (C) numero ";
cin >> A,B,C;
if (A > B) {
MAX = A;
} else {
MAX = B;
}
}


così inserisci ad ogni ciclo 3 numeri, e poi per calcolare il massimo e il minimo non tieni conto dei numeri ineriti precedentemente..

fai così.. all'inizio setti max a 0
poi ad ogni ciclo inserisci un numero controlli se è maggiore di max.. se si fai diventare max uguale al numero appena inserito..
poi alla fine del ciclo in max è contenuto il valore massimo tra tutti i valori

ciao :ciauz:

Mauri94
22-01-2011, 22:17
Io ti ringrazio per la risposta così veloce. E che avendo studiato da poco il ciclo, non saprei come muovermi, traducendo ciò che hai detto, che d'altronde ho chiaramente capito, è elementare. Non potresti aiutarmi ancora un pochetto, semmai introducendo una parte iniziale del codice?

XAlbeX
22-01-2011, 22:25
int main ()
{
int N, CONT = 0, X, MAX = 0;

cout <<"Su quanti numeri vuoi effettuare il MAX? ";
cin >> N;

while (CONT < N)
{
CONT++;

cout << "inserisci un numero: ";
cin >> X;

if(X > MAX)
MAX = X;
}

cout << "il maggiore e': " << MAX;
return 0;
}


il codice è molto semplice, ogni volta che esegue un ciclo ottiene un numero da input,
e controlla se è maggiore di max
:ciauz:

Mauri94
22-01-2011, 22:32
Caspita è vero, ti ringrazio. :)

Loading