Ciclo for c

di il
7 risposte

Ciclo for c

Salve a tutti

Allora, mi basta anche solo un indizio ma non riesco a capire dov'è l'errore !

la consegna dell'esercizio è la seguente:
---------
scrivete un programma che trovi il numero minimo di diversi interi. Supponete che il primo valore letto specifichi il numero di quelli ancora da leggere .
----------
Iterazioni e controlli da utilizzare

for, if , ( while ? )

non vi sto chiedendo il codice spiattellato già bello che fatto, ma anche solo una segnalazione di dove sto sbagliando in modo da capire e migliorare

http://pastebin.com/Y3HUrUv

7 Risposte

  • Re: Ciclo for c

    I problemi sono tutti in questa parte
    
            numero=minimo;
            massimo=1;
                    if(minimo <= massimo){
                    minimo=minimo;
                    }
                    else{
                    massimo=minimo;
                    }
    
    a parte il fatto che non capisco perché gestisci il "massimo" dato che non è richiesto.
  • Re: Ciclo for c

    Ok, non sto riuscendo, un piccolo aiuto in più ? ( sempre senza scrivere il codice, se per voi non è una rottura )

    oregon, grazie mille per la risposta
  • Re: Ciclo for c

    Per farvi capire, ho modificato il codice in questo modo, ma come numero minimo mi da sempre l'ultimo numero che scrivo.

    non uso pastebin in quanto le righe sono veramente poche
    -----------------------------------------

    for(numero=0; numero<=contatore ; numero++){
    printf("inserisci iL numero da confrontare");
    scanf("%d", &numero);

    minimo=numero;
    if(minimo < numero){
    minimo=minimo;
    }
    else{
    minimo=numero;
    }

    }

    ----------------------------------------------------
  • Re: Ciclo for c

    Aggiornamento: ho tolto "numero" dalla scanf, così il ciclo funziona bene, tuttavia non capisco come gestire le variabili e gli if
  • Re: Ciclo for c

    Ce l'ho fatta !!!

    
    #include <stdio.h>
     
    int main (void)
     
    {
     
    int contatore;
    int numero;
    int massimo, minimo=massimo;
     
    printf("quanti numeri vuoi inserire?");
    scanf("%d", &contatore);
     
    if( contatore <= 0 ){
            printf("non hai inserito nessun numero");
                }
     
    else{
            for(numero=0; numero<contatore ; numero++){
              printf("inserisci iL numero da confrontare:\n");  
                    scanf("%d", &massimo);
                     
                    
    		if(massimo < minimo  ){
    		minimo=massimo;
    		}
    		
    		
                   
            }
     
    }
    printf(" il numero minimo e' %d \n", minimo);
     
    return 0;
     
     
    }
    
    
  • Re: Ciclo for c

    Rivedi i nomi delle variabili (massimo non c'entra nulla, numero dovrebbe essere il valore in input e i la variabile per il contatore). Inoltre minimo=massimo all'inizio non serve a nulla.

    In realtà dovresti

    - prima della for esegui una scanf del primo numero
    - subito dopo assegna minimo=numero;
    - esegui la for partendo da 1 fino a <contatore
    - esegui la if
    if(numero<minimo) minimo=numero;
    - visualizza il risultato fuori dalla for
  • Re: Ciclo for c

    E cazzo, hai ragione. Molto più elegante la tua di soluzione ( sono serio) . Mi dispiace ma è il primo for di tutta la mia vita XD mi sarò lasciato prendere dall'entusiasmo di averlo fatto funzionare !
Devi accedere o registrarti per scrivere nel forum
7 risposte