Calculadora y función de módulo de punto flotante en C

Tengo que escribir un caso para una función ‘%’ (módulo) para una calculadora. Cuando compilo, me dice que he usado la función fmod incorrectamente. Sin el caso ‘%’, el rest del código funciona como debería.

 #include  #include  #include  #include  // Originally missing #define MAXOP 100 #define NUMBER '0' int getop(char []); void push(double); double pop(void); main() { int type; double op2; char s[MAXOP]; printf("\nEnter numbers below in the following format\nwith a space between each:\n"); printf("\tnum1 num2 operator\n"); printf("\tyou may use (+, -, /, *) for the operators\n"); while((type = getop(s)) != EOF) { switch(type) { case NUMBER: push(atof(s)); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); push(pop() - op2); break; case '/': op2 = pop(); if(op2 != 0.0) push(pop() / op2); else printf("error: zero divisor\n"); break; case '%': op2=pop(); if(op2 != 0.0) push(fmod(pop(),op2)); else printf("error: zero divisor"); break; case '\n': printf("\t%.8g\n", pop()); break; default: printf("error: unknown command %s\n", s); break; } } return 0; } 

Busqué la función fmod , y todavía no puedo entender por qué no funcionará. ¿Alguna idea?

Agregué el encabezado math.h, y el mensaje de error que recibo ahora es:

 /tmp/ccgiVhWI.o: In function `main': calc.c:(.text+0x14f): undefined reference to `fmod' collect2: ld returned 1 exit status 

Falta #include por lo que el comstackdor piensa que fmod() es una función que devuelve int , o se queja de que sabe sobre fmod() pero no lo ha declarado correctamente, o no.

Sería mejor incluir el mensaje de error exacto del comstackdor (a menos que haya una ruta muy larga para el nombre del archivo, en cuyo caso, truncar el nombre del archivo sería una cortesía).

Le falta el encabezado math.h para proporcionar el prototipo para fmod .