SPOJ – Pequeños factoriales

http://www.spoj.com/problems/FCTRL2/
Mi código muestra un error de comstackción en Spoj, aunque se ejecuta correctamente en mi comstackdor.
** IDE – Codeblocks **

int cal(int ); int main() { int i,t; int n[100]; scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d",&n[i]); } for(i=0;i=1;j--) { a=a*j; } return a; } 

printf y scanf no están definidos. Necesitas incluir la librería stdio .

Me sale este error localmente:

 test.c: In function 'main': test.c:8:9: warning: incompatible implicit declaration of built-in function 'scanf' scanf("%d",&t); ^ test.c:16:16: warning: incompatible implicit declaration of built-in function 'printf' printf("%d",cal(n[i])); ^ 

Para cada entrada de enteros tienes que calcular el factorial. Esto es muy simple en lenguajes como Python o Java que tienen soporte incorporado para tipos de enteros grandes. A pesar de que le da un tiempo difícil a las personas que usan C / C ++ o lenguajes que no tienen un tipo integrado de biginteger.

Ahora, el número máximo que se puede almacenar en un entero sin signo de 32 bits es 2 ^ 32 – 1 y en un entero sin signo de 64 bits es 2 ^ 64 – 1. ¡Algo así como 100! Tiene más de 150 dígitos decimales. Los tipos de datos mencionados anteriormente pueden almacenar números con un máximo de 9 y 19 dígitos decimales respectivamente. Por lo tanto, debe encontrar una manera de almacenar los más de 150 dígitos que obtendremos como respuesta. Piensa en usar matrices para almacenar cada decimales.