Программа на С++ странно работает. Что делать?
5 / 9 == 0 - оба операнда целочисленные, деление целочисленное.
5. / 9 == 5 / 9. == 5. / 9. == 0.555555556 - хотя бы один из операндов вещественный, деление вещественное.
вариантов много, например
cels = (double)5 / 9 * (fahr - 32);