Solution: Input via Command Line

Solution: Input via Command Line

#include <stdio.h>

int fib(int n);

int main(int argc, char *argv[])
{
  if (argc < 2) {
    printf("Error: please pass a number\n");
    return 1;
  }
  else {
    int n = atoi(argv[1]);
    if (n < 0) {
      printf("Error: n must be at least 0\n");
      return 1;
    }
    else {
      printf("fib(%d) = %d\n", n, fib(n));
      return 0;
    }
  }
}

int fib(int n)
{
  int i;
  if ((n == 0) || (n == 1)) return n;
  int a = 0;
  int b = 1;
  int tmp;
  for (i = 2; i <= n; i++) {
    tmp = b;
    b = a + b; // Now b contains the i^th Fibonacci number
    a = tmp;
  }
  return b;
}
Solution: Input via command line