Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45

    calcolo fattoriale in c

    ciao!!
    ho provato a scrivere il programma che calcola il fattoriale di un numero nel seguente modo:
    codice:
    #include<stdio.h>
    int main(void)
    {
    /*dichiaro le variabili*/
    	int numero=0;
    	int fattoriale=1;
    
    
        printf("inserire un numero positivo: ");
    	scanf( "%d", &numero );
    
    /*inizio ciclo*/
    	while(fattoriale>=0){
    	if(numero==0){
    		fattoriale *= 1;
    	}
    	else {
    		fattoriale*=numero;
    	}
    	--numero;
    }
    
    printf("%d! e' %d\n",numero,fattoriale);
    return 0;
    }
    non mi da nessun errore, solo che quando avvio il programma
    inserisco un numero positivo(es 4 e mi da -2! è -24) non capisco perchè..
    grazie!!
    eg

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: calcolo fattoriale in c

    Originariamente inviato da egla
    non capisco perchè..
    A cosa serve il controllo fatto nella while?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    nel fra-tempo che il numero è > o = a zero si può verificare la prima o la seconda condizione...
    eg

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da egla
    nel fra-tempo che il numero è > o = a zero si può verificare la prima o la seconda condizione...
    numero? Non mi pare ci sia scritto numero
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    si scusa ho copiato male io, ma si visualizza comunque la stessa cosa
    esempio inserisco 3 mi da -1! è 6..
    eg

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da egla
    a -1! è 6..
    Il 6 è corretto ...

    Il -1 è dato dal fatto che visualizzi la variabile

    numero

    che nel ciclo è stata sempre più diminuita con

    --numero;

    Quindi, mi sembra ovvio che non ha più valore 3 ...

    Cosa devi fare per mantenere il valore originale?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    devo usa una variabile temp per memorizzare il valore originario.
    eg

  8. #8
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Prova a farla ricorsiva, che è più semplice.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da ramy89
    Prova a farla ricorsiva, che è più semplice.
    Più elegante, ma non più semplice.

    La ricorsività, per chi inizia, è intrinsecamente più difficile da capire (e quindi più complessa).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    ok, ci provo
    comunque cosi viene.
    grazie!
    eg

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