C Program to Print the Fibonacci Series

In this article, you will learn and get code for printing Fibonacci series with and without using functions. But before going through the program, let's first understand the Fibonacci series.

What exactly is the Fibonacci Sequence?

The Fibonacci series is a series of numbers that starts at 0 and 1. Thereafter, the next number will be the sum of the previous two numbers. For example,

0  1  1  2  3  5  8  13  21.....

That is, the first and second numbers are 0 and 1, thereafter.

Now let's move on and implement it in a C program.

Fibonacci Sequence without Function

The question is, "Write a program in C to print Fibonacci series up to N terms." The user must choose the value of N (at run-time). The answer to this question is:

#include<stdio.h>
#include<conio.h>
int main()
{
    int a=0, b=1, c, N, temp, i;
    printf("Enter the value of N (limit): ");
    scanf("%d", &N);
    for(i=1; i<=N; i++)
    {
        if(i==1)
            c = 0;
        else if(i==2 || i==3)
            c = 1;
        else
        {
            temp = a;
            a = b;
            b = c;
            c = a+b;
        }
        if(i==N)
            printf("%d", c);
        else
            printf("%d, ", c);
    }
    getch();
    return 0;
}

Because the program was written in the Code::Blocks IDE, you will see the following output after a successful build and run:

fibonacci series program c

Provide the value of N (limit), which is how many terms of the Fibonacci series you want to print:

print fibonacci series in c

Program Explained

Print the Fibonacci series using a user-defined function

Here is another program that works the same as the previous one. The only difference is that this program uses a user-defined function printFibo() to print the Fibonacci series:

#include<stdio.h>
#include<conio.h>
void printFibo(int);
int main()
{
    int N;
    printf("Enter the value of N (limit): ");
    scanf("%d", &N);
    printFibo(N);
    getch();
    return 0;
}
void printFibo(int n)
{
    int i, a=1, b=1, c, temp;
    for(i=1; i<=n; i++)
    {
        if(i==1)
            c = 0;
        else if(i==2 || i==3)
            c = 1;
        else
        {
            temp = a;
            a = b;
            b = c;
            c = a+b;
        }
        if(i==n)
            printf("%d", c);
        else
            printf("%d, ", c);
    }
}

Here is the final snapshot of the first sample run:

c program print fibonacci series

Here is the final snapshot of another sample run:

print fibonacci series using function c

Using a Function to Return the Fibonacci Sequence

Let's modify the previous program so that it will also print the Fibonacci series but use the function that returns values. Here we have created a function in such a way that it will return each and every term of the Fibonacci series one by one:

#include<stdio.h>
#include<conio.h>
int getFibo(int);
int main()
{
    int N, i, fib;
    printf("Enter the value of N (limit): ");
    scanf("%d", &N);
    for(i=1; i<=N; i++)
    {
        fib = getFibo(i);
        if(i==N)
            printf("%d", fib);
        else
            printf("%d, ", fib);
    }
    getch();
    return 0;
}
int getFibo(int i)
{
    static int a=0, b=1, c;
    int temp;
    if(i==1)
        c = 0;
    else if(i==2 || i==3)
        c = 1;
    else
    {
        temp = a;
        a = b;
        b = c;
        c = a+b;
    }
    return c;
}

Here is the final snapshot of the sample run of the above program that was created using a function with a return value:

c fibonacci series function return value

If the user supplies the limit as 10, then 10 starting terms of the Fibonacci series will be printed at the output screen, and the function created in the above program named getFibo() will also run 10 times to return each and every term of the Fibonacci series one by one.

Here I've used a static type variable for a, b, and c to remember its previous value throughout the program.

The same program in different languages

C Quiz


« Previous Program Next Program »