从main外部的功能打印双打

时间:2018-11-29 20:29:57

标签: c printf double function-prototypes

我是c语言的新手,尝试使用main函数之外的函数,我想测试一下我得到了什么,但是从函数打印值时发现了错误。

#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 :(得分: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;
}