Функция типа long double возвращает странные значения - C (СИ)
Формулировка задачи:
Не могу получить правильный результат long double при вызове функции. Возвращаются странные значения. Где засада не пойму?
Результат:
Почему не возвращается результат long double?
Чувствую себя полным идиотом.
#include <stdio.h> #include <stdlib.h> /* * Simple C Test Suite */ long double tstFun(long double ff,int64_t ii,char tpInt) { if (tpInt) return (long double)(ii); else ff; } int main(int argc, char** argv) { printf("wrkFun test 1\n"); long double fres; fres=tstFun(0,256,1); printf(" %Lf\n",fres); fres=tstFun(256.58,0,0); printf(" %Lf\n",fres); fres=tstFun(87956.5878,0,0); printf(" %Lf\n",fres); fres=tstFun(0,256,1); printf(" %Lf\n",fres); return (EXIT_SUCCESS); }
wrkFun test 1 256.000000 nan nan 256.000000
Увидел ошибку. return
Решение задачи: «Функция типа long double возвращает странные значения»
textual
Листинг программы
c: In function ‘tstFun’: c:9:9: warning: statement with no effect [-Wunused-value] c: In function ‘main’: c:14:2: warning: ISO C90 forbids mixed declarations and code [-pedantic] c: In function ‘tstFun’: c:10:1: warning: control reaches end of non-void function [-Wreturn-type]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д