我是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和主函数内部计算出的实际值有什么区别,为什么会出现此问题
答案 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;
}