Puzzle SL19


Inspect the following program:

#include <stdio.h>

int j;

int fact( int n )
{
  int value = 1;
  for ( j=1; j<=n; j++ ) value *= j;
  return value;
}

int main ( void )
{
  for ( j=1; j<7; j++ )
    printf("factorial of %d is %d\n", j, fact(j) );

  return 0 ;
}

Its output is the following:

factorial of 2 is 1
factorial of 4 is 6
factorial of 6 is 120

Explain this strange result.



Previous Page        Answer         Next Page         Home