Функция типа long double возвращает странные значения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу получить правильный результат 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
Почему не возвращается результат long double? Чувствую себя полным идиотом.
Увидел ошибку. 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]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы