segundo... los defines en general no son mala practica pero no están lejos, ya que son directivas de preprocesador y no estás declaradas de manera bien controlada
que tipo de variable son en tu codigo Xo, Xn y n... podrías responder eso en base a tu codigo? char, short, int, long, float, doble? sabes si es signed o unsigned?
la función main está incompleta, aunque puede ser una asunto de copiado así que no me meto allí...
tienes 2 caminos
seguir con los defines (que no lo recomiendo para nada) y entonces usar casting (conversión implicita) donde solo cambiarías una linea
Código
h=(xn-xo)/(double)n;
o de la manera que debe ser, usando constantes de manera que están disponibles en tu código tienes controlado su tipo y no son alterables
Código
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ const double xo = 5; const double xn = 15; const double n = 9; double h; h=(xn-xo)/n; return 0; }