Presi n numeri in input trovare il massimo e il suo inferior

di il
4 risposte

Presi n numeri in input trovare il massimo e il suo inferior

Salve a tutti,
Devo scrivere un programma che presi in input n numeri, trovi il massimo e il suo elemento immediatamente inferiore. Ovvero: se prendo 5,20,7,10. Il max è 20 e l'inf è 10.
Per il massimo non ho problemi:
Max=0;
for(i=0;i<=n;i++){
Printf("dammi il numero");
Scanf("%d",&a);
If(a>max)
Max=a;
}
Ma l'inferiore mi sta facendo impazzire. Mi viene in mente di farlo usando i vettori ma non li posso usare. Dovrei mettere un controllo prima dell'if del max ma non riesco a capire come. Il mio cervello mi dice che la variabile a viene sempre sovrascritta quindi non posso confrontarla con tutti i numeri.
Un aiutino?
Grazie mille
Serena

4 Risposte

  • Re: Presi n numeri in input trovare il massimo e il suo inferior

    Tieni un'altra variabile, ad esempio chiamata "inf", nella quale scrivi l'elemento inferiore. Ad ogni nuova immissione dici:
    - se è maggiore del massimo allora quello è il nuovo massimo, mentre quello che prima era il massimo diventa l'inferiore
    - se non è maggiore del massimo allora può comunque essere il nuovo elemento inferiore: controlla ed eventualmente aggiorna
  • Re: Presi n numeri in input trovare il massimo e il suo inferior

    minomic ha scritto:


    Tieni un'altra variabile, ad esempio chiamata "inf", nella quale scrivi l'elemento inferiore. Ad ogni nuova immissione dici:
    - se è maggiore del massimo allora quello è il nuovo massimo, mentre quello che prima era il massimo diventa l'inferiore
    - se non è maggiore del massimo allora può comunque essere il nuovo elemento inferiore: controlla ed eventualmente aggiorna
    No, non l'ho proprio capito.
  • Re: Presi n numeri in input trovare il massimo e il suo inferior

    VentoNelGrano ha scritto:


    minomic ha scritto:


    Tieni un'altra variabile, ad esempio chiamata "inf", nella quale scrivi l'elemento inferiore. Ad ogni nuova immissione dici:
    - se è maggiore del massimo allora quello è il nuovo massimo, mentre quello che prima era il massimo diventa l'inferiore
    - se non è maggiore del massimo allora può comunque essere il nuovo elemento inferiore: controlla ed eventualmente aggiorna
    No, non l'ho proprio capito.
    Prova a scriverlo su carta... E' piuttosto semplice.
    Il nuovo numero è maggiore dell'attuale massimo? Se sì, allora prende il suo posto, e quello che prima era il massimo diventa l'elemento immediatamente inferiore. Se invece non è maggiore del massimo, allora può comunque essere maggiore dell'elemento immediatamente inferiore: se lo è allora lo sostituisci.

    Esempio:
    inserisci 1, e questo è il nuovo massimo perché è il primo valore.
    Poi inserisci 2, che è maggiore del massimo. Quindi il nuovo massimo è 2 e l'elemento seguente è 1.
    Poi inserisci 4, che è maggiore del massimo. Quindi il nuovo massimo è 4 e l'elemento seguente è 2.
    Poi inserisci 3, che non è maggiore del massimo, quindi il massimo rimane 4. Però 3 è maggiore di 2, quindi 3 diventa il nuovo elemento immediatamente inferiore al massimo.
  • Re: Presi n numeri in input trovare il massimo e il suo inferior

    Ci sono!!! Grazie mille.
    Continuavo a ragionare male.
    Grazie mille veramente.
    Serena
Devi accedere o registrarti per scrivere nel forum
4 risposte