+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Trovare il massimo e il minimo

  1. #1
    Vincent Vega non  in linea Novello
    Salve a tutti premetto che sono nuovo nel mondo C e che l'impegno e la volonta non mi mancano infatti chiedo aiuto dopo un pomeriggio passato su un programma che richiede solo l'if e che per me tutto tranne banale :S

    Praticamente il programma mi chiede di trovare il massimo e il minimo inserendo da tastiera 3 interi!
    Io ho provato in piu modi anche con gli operatori logici benche' mi si chiedeva di usare solo l'istruzione if a selezione singola!
    listato:
    /*esplicito solo la parte del maggiore , per il minore lo stesso procedimento*/
    #inlude <stdio.h>
    int main()
    {
    int x,y,z;

    printf(inserisci tre numeri interi:\n);
    scanf("%d%d%d",&x,&y,&z);

    if(x>y) {
    printf("Il massimo %d",x);
    }
    if(x>z) {
    printf("Il massimo %d",x);
    }
    if(z>y) {
    printf("Il massimo %d",z);
    }
    if(z>x) {
    printf("Il massimo %d",z);
    }
    if(y>x) {
    printf("Il massimo %d",y);
    }
    if(y>z) {
    printf("Il massimo %d",y);
    }
    return 0;
    }
    suggerimenti?
    grazie in anticipo per chi voglia aiutarmi

    scusate il titolo :s dovevo inserire if

    edit: ho trovato un'altro topic simile sul forum ma piu informazioni non mi dispiaerebbero' anche perche in quel topic usa anche else
    Ultima modifica di Vincent Vega; 06-12-2008 23:55 

  2. #2
    Intanto, Vincent, il titolo non ha senso ... questa volta lo correggo io, la prossima vedi di inserirne uno che abbia una attinenza con il problema.

    Per il tuo problema, segui una strada piu' semplice ...

    1) assegna la prima variabile (x) ad un'altra (che chiamerai max)

    2) controlla con una if che la seconda variabile (y) non sia maggiore di max, altrimenti assegni x a max

    3) ripeti il punto 2) per la terza variabile (z)

    In pratica ti bastano 2 if
    ℹ️ Leggi di pi su AntonioG ...

  3. #3
    Vincent Vega non  in linea Novello
    Scusa per il titolo :s
    Ad ogni modo adesso mi chiaro e ho sistemato il programa.
    A parte quell'errore , come si vede dal listato che ho scritto sopra, mi sembra palese il continuo errore dell'utilizzo di printf ad ogni istruzione if e prorpio per questo mi ritrovano in esecuzione piu volte scritto il maggiore ma senza risultato :s

     #include <stdio.h>
    int main ()
    {
       int x,y,z;
       int max, min; /*prima correzione*/
    
       printf(inserisci tre numeri interi:\n);
       scanf("%d%d%d",&x,&y,&z);
    
       if(x>=y) { 
          max=x;
       }
       if(x<=y) { 
          max=y;
       }
       if(z>=max) { 
          max=z;
       }
    
       printf("Il massimo  %d",max);
    
    return 0; 
    } 
    /*analogo per il minimo*/
    
    Grazie :d
    Ultima modifica di AntonioG; 07-12-2008 13:04  Motivo: Inseriti tag code

  4. #4
    A parte l'inserimento corretto dei tag CODE (a cui ho rimediato io, ma fai attenzione), non ho capito il senso di questo tuo post ...

    Rileggi quello che hai scritto ... lo capisci?

    In ogni caso, non hai seguito quello che ti ho detto ... il codice dovrebbe essere

     #include <stdio.h>
    int main ()
    {
       int x,y,z;
       int max, min; /*prima correzione*/
    
       printf(inserisci tre numeri interi:\n);
       scanf("%d %d %d", &x, &y, &z);
    
       max=x;
    
       if(y>max) max=y;
    
       if(z>max) max=z;
    
       printf("Il massimo  %d\n", max);
    
       return 0; 
    } 
    /*analogo per il minimo*/
    
    ℹ️ Leggi di pi su AntonioG ...

  5. #5
    Vincent Vega non  in linea Novello
    io per complicarmi un po le cose ho messo un if in piu!
    A parte l'abuso di parentesi graffe fatto da me e l'if in piu uguale!?
    Tu inizializzi il max gia ad x io invece ho provato a dargli una aulteriore controllata.
    Per il codice io dope il [quote] le rientranze le ho rispettate ma lo ha mandato tutto a destra :S non so perche !
    Cmq lo capisco quello che ho scritto:d

  6. #6
    Quote Originariamente inviato da Vincent Vega Visualizza il messaggio
    io per complicarmi un po le cose ho messo un if in piu!
    A parte l'abuso di parentesi graffe fatto da me e l'if in piu uguale!?
    Tu inizializzi il max gia ad x io invece ho provato a dargli una aulteriore controllata.
    Ulteriore controllo inutile ...

    Se in un programma da poche righe inserisci una if in piu' e fai un controllo non dovuto, cosa succedera' con un programma da migliaia di righe di codice ?

    Cmq lo capisco quello che ho scritto:d
    Beato te ... ... io invece questa tua frase

    "prorpio per questo mi ritrovano in esecuzione piu volte scritto il maggiore ma senza risultato"

    non l'ho proprio capita ...
    ℹ️ Leggi di pi su AntonioG ...

  7. #7
    Vincent Vega non  in linea Novello
    Sei stata bravissima e molto veloce nel rispondere ai miei dubbi e per questo ti ringrazio molto
    Ma se per ognuno che chiede qualcosa c' tutta questa pignoleria beh il tuo sapere tienitelo stretto!Chiedevo un consiglio su programma, il problima stato ben esplicitato.
    Mi scappato una battuta da tastiera involontaria o quasi non c' bisogno di fare drammi!
    Poi se lo devi per forza sottolineare la prossima volta cerchero di essere piu concentrato!
    Comunque continui ad interpretare l'esercizio a modo tuo :d non per niente scontato che la x iniziale sia il max quindi il contollo ci sta.

  8. #8
    Quote Originariamente inviato da Vincent Vega Visualizza il messaggio
    Sei stata bravissima e molto veloce nel rispondere ai miei dubbi e per questo ti ringrazio molto
    bravissimo ... mi chiamo Antonio ...

    Ma se per ognuno che chiede qualcosa c' tutta questa pignoleria beh il tuo sapere tienitelo stretto!Chiedevo un consiglio su programma, il problima stato ben esplicitato.
    Mi scappato una battuta da tastiera involontaria o quasi non c' bisogno di fare drammi!
    Ti ho detto solamente, e in modo scherzoso, che il tuo post non era chiaro (e non lo era) ... non mi sembra proprio il caso di fare polemiche ...

    Poi se lo devi per forza sottolineare la prossima volta cerchero di essere piu concentrato!
    Ecco ... sono d'accordo ...

    Comunque continui ad interpretare l'esercizio a modo tuo :d non per niente scontato che la x iniziale sia il max quindi il contollo ci sta.
    Guarda che questi esercizi li facevo 30 anni fa e li insegnavo 20 anni fa ... va benissimo come ti ho detto. Pensaci.
    ℹ️ Leggi di pi su AntonioG ...

  9. #9
    L'avatar di sLaSh17
    sLaSh17 non  in linea Scolaretto
    normale inizializzare max ad x (e quindi anche min)...semplicemente perch nel caso in cui x non sia il valore massimo, nei successivi if a max verrebbe assegnato il valore corretto...

    esempio:

    x=1; y=5; z=3;

    cosa fa il programma?

    alla prima istruzione assegna x a max, quindi max=1
    dopodiche controlla: y>max ? cio 5>1 ? si...allora a max verr assegnato y, cio max=5 (nota bene, quest'assegnamento significa che max sar 5 e non pi 1)
    ancora un altro controllo, z>max ? cio 3>5 ? no...allora non faccio niente (quindi max resta 5)

    quindi stamper 5, che appunto il massimo...

    stesso identico discorso per il minimo...solo che si tratter di min, e al posto dei > ci saranno i <

    spero tu abbia capito...questo tipo di ragionamento basilare ed fondamentale capirlo per bene....
    il tuo codice funziona e risolve il problema, per stai facendo un controllo in pi inutile, quindi non stai facendo un ragionamento "informatico"...

  10. #10
    Vincent Vega non  in linea Novello
    bravissimo ... mi chiamo Antonio ...
    pensavo che Giuliana fosse il nome pardon

    Guarda che questi esercizi li facevo 30 anni fa e li insegnavo 20 anni fa ... va benissimo come ti ho detto. Pensaci.
    Sul pensaci sono d'accordo sul va benissimo un po meno :d
    Se prendo per buono tutto senza un minimo di ragionamento e curiosita' tanto vale che copio un po di programmi e basta cosi divento subito bravo
    Ad ogni modo sei stato/a illuminate altrimenti sarei ancora su quel programma, adesso affrontiamo l'inizializzazione!

    il tuo codice funziona e risolve il problema, per stai facendo un controllo in pi inutile, quindi non stai facendo un ragionamento "informatico"...
    Quindi l'inizializzazione x=max mi elimina un ciclo, in effetti cosi rivedendo tutto nell'ottica dell'esempio.
    Se non per niente scontato che l'x sia il massimo , inizialmente, dall'altro lato ci sono sempre due istruzioni seguenti che possono stabilire che x puo o non puo essere il massimo.
    Ma dato che x il primo valore inserito il massimo in quel momento!
    Ok pian pian mi son convinto! :d
    Grazie ad entrambi ... aspettatevi miei dubbi in futuro

+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Valore random tra minimo e massimo
    Da Fnordyrhyme72 nel forum C/C++
    Risposte: 1
    Ultimo Post: 01-10-2017, 21:01
  2. Trovare il valore minimo e il valore massimo in un datatable
    Da ettore71 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 11-02-2017, 00:17
  3. Riempimento con valori da minimo a massimo
    Da pucc973 nel forum Microsoft Excel
    Risposte: 17
    Ultimo Post: 20-09-2015, 09:14
  4. Trovare il valore minimo(massimo) in un intervallo
    Da valle8683 nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 15-04-2015, 16:31
  5. Fortran 90 - Elemento massimo e minimo
    Da Nemesi nel forum Altri linguaggi e strumenti
    Risposte: 4
    Ultimo Post: 01-07-2014, 18:54