salve, ho un problema con un programma che calcola il fattoriale, mi spiego, il programma che posto di seguito funziona ma quando decido di separare le funzioni non mi calcola piu il fattoriale.
il programma "non spezzato" si chiama pr27.c e funziona
il programma "spezzato" e suddiviso in tre codici
pr25.h che contiene la dichiarazione della funzione
pr25.c che contiene la definizione della funzione
pr25_main.c che contiene la main
ora quando compilo i tre codici non ottengo il fattoriale, come se la funzione non si attivasse.
qualcuno ha qualche idea?
grazie
PS seguono i listati dei 4 codici
questo e il pr25.h
questo e il pr25.c
questo e il pr25_main.c
il programma "non spezzato" si chiama pr27.c e funziona
il programma "spezzato" e suddiviso in tre codici
pr25.h che contiene la dichiarazione della funzione
pr25.c che contiene la definizione della funzione
pr25_main.c che contiene la main
ora quando compilo i tre codici non ottengo il fattoriale, come se la funzione non si attivasse.
qualcuno ha qualche idea?
grazie
PS seguono i listati dei 4 codici
C:
/* File: fattoriale.c */
/* Funzione ricorsiva che calcola il fattoriale di un numero >= 0
Si ricorda che il fattoriale n! e' definito come:
n! = 1 se n = 0
n! = n*(n-1)! se n > 0
*/
/* Esempio di funzione ricorsiva */
#include <stdio.h>
int fattoriale(int);
int fattoriale(int n)
{
if (n < 0) return -1; /* Fattoriale non e' definito per interi negativi! */
if (n == 0) return 1;
else return n*fattoriale(n-1);
}
int main(void)
{
int n;
printf("Inserire un intero >= 0 : ");
scanf("%d", &n);
printf("Il fattoriale di %d e' %d\n", n, fattoriale(n));
return 0;
}
/*
Nota: il fattoriale di un numero cresce molto velocemente. Per calcolare il
fattoriale di numeri grandi, modificare la funzione sostituendo int con long
*/
questo e il pr25.h
C:
int fat(int); //dichiarazione della funzione fattoriale
questo e il pr25.c
C:
#include"pr25.h"
int fat (int n) //definizione della funzione fattoriale procedura ricorsiva
{
if (n==0)
return 1;
else
return n*fat(n-1);
}
questo e il pr25_main.c
C:
#include<stdio.h>
#include<stdlib.h>
#include"pr25.h"
int main() {
int n;
printf("inserisci il numero di cui vuoi calcolare il fattoriale\n",n);
scanf("%d",&n);
printf("il fattoriale di %d e':\n",n,fat(n));
return 0;
}
Ultima modifica da un moderatore: