10.04.2012

Factorial C program,Algorithm,Flowchart

Q. Write a C program to find the factorial value of a number. Also write the algorithm and draw flowchart.

Ans.

/*c program to find out factorial value of a number*/
#include<stdio.h>
#include<conio.h>
int main()
{
 int n,i,fact=1;
 printf("Enter any number : ");
 scanf("%d", &n);
 for(i=1; i<=n; i++)
    fact = fact * i;
 printf("Factorial value of %d = %d",n,fact);
 return 0;
}

The output of above program would be:
Output of calculate factorial value  of a number C program
Screen shot for calculate factorial value
of a number C program



Algorithm for calculate factorial value of a number:

[algorithm to calculate the factorial of a number]
step 1. Start
step 2. Read the number n
step 3. [Initialize]
        i=1, fact=1
step 4. Repeat step 4 through 6 until i=n
step 5. fact=fact*i
step 6. i=i+1
step 7. Print fact
step 8. Stop
[process finish of calculate the factorial value of a number]

Flowchart for calculate factorial value of a number:

flowchart for calculate factorial value of a number
Figure: Flowchart for calculate factorial value of
a number C program

16 comments:

  1. it must be i-- else it will be infinite loop

    ReplyDelete
    Replies
    1. no i++ is absolutely correct
      progrm runs succesfully by taking i++.....

      Delete
    2. i++ is absolutely correct
      program runs succesfully by taking i++

      Delete
  2. can you tell me on which data structure this program is running>

    ReplyDelete
  3. fact=1 must be one becoz starts from 1 multyplying.. if we take 0 fact is 0 for any number..

    ReplyDelete
  4. i need same algorithm but through recurssion. Please, if anyone can help me out.

    ReplyDelete
    Replies
    1. Recursion is the worst way to do this ... reason is that it is the slowest and could result in stack overflow for very large numbers. Also if your factorial is only for integers and you need it to be the fastest then just compute them up front and table them ... then use the number to index into the table. Since a 32 bit number maxes out at around 4 billion and 13 factorial is beyond that then the table only needs to be 12 elements wide.

      Delete
  5. I need some of flowchart anybady can help with me

    ReplyDelete
  6. i think the two statement (i=i+1) and (fact=fact*i) will be interchanged....

    ReplyDelete
  7. I don't know how create a programs anyone can U teach me plz.......

    ReplyDelete
  8. Can anyone say where to get the flowchart and algorithm of EMPLOYEE DETAIL USING UNION program please?

    ReplyDelete