Problema esercizio minimo-massimo

di Anonimizzato21817 il
46 risposte
Ho un esercizio che chiede: data una sequenza di numeri N ed un numero limite per la sequenza determinare quale è il numero maggiore e il numero minore della sequenza. Io sono riuscito a fare la parte relativa al controllo del numero massimo ma non sono riuscito a fare il codice per il controllo del minimo. Potreste suggerirmi qualcosa? Grazie in anticipo

#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    int n, lim, min=0, max=0;
    cout<<"Inserisci il numero limite della sequenza: \n";
    cin>>lim;
    cout<<"inserisci i numeri della sequenza\n";
    int i=0;

    while(i<lim)
    {
        cin>>n;
        if(n>max)
            max=n;
            i++;

    }
    cout<<"Il valore massimo della sequenza e': "<<max<<endl;

    system("pause");
    return 0;
}

46 Risposte

  • Intanto perché non sei riuscito?

    Se hai fatto la parte del massimo, potrai fare quella del minimo in maniera molto molto simile.
  • Mi verrebbe da scrivere così ma è sbagliato:
    
     if (n<min)
     min=n;
  • Aggiungi quell'if al codice e testalo prima mettendo solo numeri positivi e dopo solo negativi
  • L'ho inserito nel codice ma come valore minimo mi dà sempre 0, mentre io vorrei che il codice controllasse via via ogni valore e lo confronta con quello precedente e poi guarda lo memorizza come numero minore se è minore di tutti i numeri inseriti prima
  • Hai riflettuto perché potrebbe essere sbagliato? Perché ti dà sempre 0 ?

    @olegfresi ... mi sembra impossibile che tu non riesca a fare un discorso di senso compiuto qui sul forum ... SPIEGA cosa succede e perché succede secondo te con quel codice.

    Ad esempio, se io inserisco il valore 5 cosa succede alla if ? E se inserisco -1 ?
  • L'hai testato come ti ho detto?
  • Beh con i numeri negativi è ovvio funziona perchè sono minori di 0 che è il valore iniziale di min ma il problema è che questo valore rimane e non varia.
  • olegfresi ha scritto:


    Beh con i numeri negativi è ovvio funziona perchè sono minori di 0 che è il valore iniziale di min ma il problema è che questo valore rimane e non varia.
    Con i numeri negativi non rimane 0

    Quindi, da questo ragionamento cosa ne deduci ?
  • Forse il min deve partire da un valore max e mano mano confrontare i numeri inseriti. No?
  • Direi ... si studia alle scuole medie ... E' una questione di matematica, non di informatica o programmazione ...

    Anche per il massimo, se inserisci solo numeri negativi, ti darà sempre 0 e non va bene ...

    Dovresti trovare una soluzione valida in tutti i casi ... riflettici
  • Per i negativi credo di aver risolto ma per i positivi il minimo mi dà sempre 0.
  • Non hai fatto alcun ragionamento sul valore di partenza, zero ...

    Come sempre ... vedi su CARTA cosa succede altrimenti non capisci il perché.

    Mi vuoi, almeno una volta, indicare cosa succede linea per linea, quando hai il problema? Provaci ... qui sul forum ...

    Parti da questo ragionamento:

    Se parti da 0, qualsiasi valore negativo è più piccolo di 0 e quindi viene preso in considerazione.
    Ma qualsiasi valore positivo NON è più piccolo di 0, quindi rimarrà 0.
  • Qundi se rimarrà 0 come faccio a determinare il numero minimo? Se mette per esempio 1,4,7,3 il minore è 1 quindi dovrei confrontare ogni valore e vedere quale è minore tra tutti quanti. Ma come fare ciò?
  • oregon ha scritto:


    Mi vuoi, almeno una volta, indicare cosa succede linea per linea, quando hai il problema? Provaci ... qui sul forum ...
Devi accedere o registrarti per scrivere nel forum
46 risposte