El problema es que en plataforma win compilado con dev.c++ al leer números con coma flotante en el primer "scanf" su produce un error, el programa continua llenando por si solo el segundo "scanf" realiza la operación con valores errados:
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <conio.h>
#include <locale.h>
float prepago,pago, debo;
int main (int){
setlocale(LC_ALL, "spanish");
printf ("Ingrese precio del articulo:\n");
scanf ("%d",&prepago);
printf ("Ingrese cantidad entregada por el cliente:\n");
scanf("%f",&pago);
debo = pago - prepago;
printf ("El cambio a entregar es %g$.", debo);
getch ();
return 0;
}
.
scanf ("%d",&prepago);
prepago es float, pero le has indicado "%d", entero. Tendrás que poner %f.