Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    15

    [c] Fattoriale di un numero

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int fat(int n);
    int main ()
    {
        int num;
        scanf("%d", &num);
        printf("%d",fat(num));
        
        system("pause");
        return 0;
        
        }
        int fat(int n)
        {
            int i=1;
            while(i<n)
            { n=n*i;
            i++;
            }
            return n;
            
            }
    Sto impazzendo non capisco perchè non funziona O_O
    (Non badate se il numero inserito è 0 o 1, poi lo implemento l'if.. )

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Re: [c] Fattoriale di un numero

    Originariamente inviato da Split91
    Sto impazzendo non capisco perchè non funziona O_O
    Cioè? In che senso "non funziona"? Ti da un errore? Oppure cosa?
    Dettagliare...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    15
    mi crea numeri negativi assurdi del tipo inserendo 4 ho come output: -861720576

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Cmq il ciclo while nn va bene testi i cn il fattoriale, dovrebbe essere grosso modo cs.

    codice:
    unsigned long f,i;
    
    i = f = 1;
    while(i <= n){
    	f = f * i;
    	i++;
    }
    
    return f;
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    15
    si me n'ero appena accorto, grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Visto che il valore di n lo modifichi costantemente all'interno del ciclo while, aumentandolo, la condizione risulterà falsa solo quando avrai un overflow di intero (quel numero negativo che ottieni ne è la prova).
    every day above ground is a good one

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.