печать удваивается от функции вне основного - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в 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 и фактическим значением, вычисленным внутри основной функции, и почему я получаю эту проблему

1 Ответ

0 голосов
/ 29 ноября 2018

Вы использовали 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;
}
...