Usi devc++ ?

Comunque il long double viene normalmente mappato sul double. Con il Visual C++ il tuo codice funziona ... probabilmente è il tuo compilatore cha ha problemi.