clplaner: Avoid a segfault on Wed May 27 20:00 CET 2009
* The IndexShaker would crash on the last two teams - fixed
committer: Markus Bröker <mbroeker@largo.homelinux.org>
/**
* fak.c
* Copyright (C) 2008 Markus Broeker
*/
#include <stdio.h>
#include <stdlib.h>
unsigned long fak (short i)
{
if (i == 0)
return 1;
else if (i > 0)
return (i * fak (i - 1));
else
return (i * fak (i + 1));
}
int main (int argc, char **argv)
{
short number;
printf ("Enter a number: ");
if (scanf ("%hd", &number) != 1) {
printf ("READ ERROR\n");
return EXIT_FAILURE;
}
if (number < 0) {
printf ("NUMBER FORMAT ERROR\n");
return EXIT_FAILURE;
}
printf ("The faktorial of %d is %lu\n", number, fak (number));
return EXIT_SUCCESS;
}