Ahi no está usando funciones, es que está cantado que es para enseñar recursividad. Ese programa lo he hecho hasta en Lisp y siempre es para usar recursividad.
Aún así, si tus profesores son malos profesores

debes aplicar un bucle e ir guardando los valores de fibonnaci anteriores como te han comentado teniendo cuidado de acordarte que fibonacci de 1 y de 2 es igual a 1.
(Pasando de hacer las comprobaciones de error miradme si hay algun fallo que me acabo de levantar

)
Por supuesto mejor que esta versión es la recursiva 10000 veces
int main (int argc, char *argv)
{
int fibonacci1= 1, fibonacci2= 1, aux;
int resultado =0;
int n,i;
n= atoi (argv[1])
if (( n == 1) || ( n == 2))
return 1;
for ( i = 2;i
{
aux = resultado; //Guardamos el anterio fibonacci
resultado = fibonacci 1 + fibonacci 2; //actualizamos el resultado
fibonacci1= fibonacci 2; //actualizamos el fibonacci1
fibonacci2= aux; //actualizamos el fibonacci2
}
return resultado;
}
P.D. Si no lo intentas nunca vas a aprender....