jeudi 31 octobre 2019

Function returns correct value when i use conditional operator or if statement without return statement

#include<stdio.h>
int fact(int);
int main()
{
    int a, b;
    printf("enter a number : ");
    scanf("%d",&a);
    b=fact(a);
    printf("\n%d",b);
}
int fact(int y )
{
    int d=1;
    for(int i = 1;i<=y;i++)
            d*=i;
    d= d>0 ? d : 0;
}

If I remove the last statement , O/P is a+1. I have checked this with other functions and the function returns correct values if I use if statement or conditional operator. I want to know why this happens. Thank You.

Aucun commentaire:

Enregistrer un commentaire