Я новичок в c и пытаюсь использовать функцию вне основной функции, я хотел проверить, что получаю, но обнаружил ошибку при печати значения из функции.

#include <stdio.h>
#include <math.h>

/*function prototype f*/
int f(double x);

/*main*/
int main(void){

   double x = 0.1;

   printf("the value is %.3f\n", f(x)); 
   printf("the value is %.3f", sqrt(1.0-(x*x))); 

   return 0;
}

int f(double x){
    double value;
    value = sqrt(1.0-(x*x));}
    return value;
}

Этот базовый код находит значение из заданного x, которое я хочу позже использовать в цикле. когда я запускаю это, я получаю следующий результат

значение -1 .....
значение 0,995

(… Это случайная последовательность символов)

Я не уверен, в чем разница между функцией f и фактическим значением, вычисленным внутри основной функции, и почему у меня возникает эта проблема.

0
tribo32 29 Ноя 2018 в 23:29

1 ответ

Лучший ответ

Вы использовали int вместо double для своего прототипа. Это должно дать вам правильный ответ.

#include <stdio.h>
#include <math.h>
#include <conio.h>

/*function prototype f*/
double f(double x);

/*main*/
int main() {

    double x = 0.1;

    printf("the value is %.3f\n", f(x));
    printf("the value is %.3f", sqrt(1.0 - (x*x)));

    _getch();
    return 0;
}

double f(double x) {
    double value;
    value = sqrt(1.0 - (x*x));
    return value;
}
1
Nathan 29 Ноя 2018 в 20:37