I want to write a C program that evaluates the factorials of the integers from 1 to 5 and print them in a tabular format. However, I keep getting a strange number over everythin
Unlike scanf
, printf()
with format %d
requires integer values, not addresses (&x
is the address containing an integer, so a pointer to integer which type is int *
). The correct expression is
printf("%d\t %d\n", x, factorial);
With printf("%d\t %d\n", &x, &factorial);
you are asking to printf to print the decimal representations of the addresses of x
and factorial
respectively.
For this reason it is not surprising that the values that used to be printed, 6356768
and 6356772
:
You can find printf
documentation here.