codescracker
c

C Program to Print Fibonacci Series



« Previous Program Next Program »

In this tutorial, you will learn and get code about printing of Fibonacci series with and without using function. But before going through the program, let's first understand about Fibonacci series.

What is Fibonacci Series ?

Fibonacci series is a series of numbers, starts from 0 and 1. Thereafter, the next number will be the summation of previous two numbers. For example,

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

That is, the first and second number is 0 and 1, thereafter

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

Fibonacci Series without using Function

The question is, write a program in C to print Fibonacci series upto N term. The value of N must be taken by user (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;
}

As the program was written under Code::Blocks IDE, therefore after successful build and run, you will get the following output:

fibonacci series program c

Provide the value of N (limit), that is how many term of Fibonacci series you wants to print:

print fibonacci series in c

Program Explained

Using Function to Print Fibonacci

Here is another program that works same as of 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 Function to Return Fibonacci Series

Let's modify the previous program that will also print the Fibonacci series but using the function that returns values. Here we have created a function in such a way that it will return each and every term of 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 above program that was created using function with return value:

c fibonacci series function return value

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

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

Same Program in Other Languages

C Online Test


« Previous Program Next Program »



© Copyright 2021. All Rights Reserved.

CodesCracker