Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115

    Ciclo while in un problema [C++]

    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:

    codice:
    #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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    131
    codice:
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115
    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?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    131
    codice:
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115
    Caspita è vero, ti ringrazio.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.