c - 从 main 之外的函数打印双打
问题描述
我是 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 和主函数内部计算的实际值有什么区别,以及为什么我会遇到这个问题
解决方案
您使用 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;
}
推荐阅读
- hadoop - 如何在不重启Hadoop服务的情况下清除“Reserved Space for Replicas”
- python - 如何在编辑模块后让 vscode 检测/自动重新加载模块?
- vb.net - Visual Basic 在我的安装副本中不包含 6 个 .jpg 文件
- sql-server - XML 列 - 三级层次结构 - 交叉应用
- iphone - Windows Visual Studio 2019 未检测到 iphone XR iOS 13.4.1
- windows - 重写运行批处理文件
- php - 使用 PHP 会话从数据库中获取文件
- python - “ImportError:导入 mariadb 时 DLL 加载失败:找不到指定的模块”的解决方法。
- php - GULP 4 - 使用 browsersync 和 PHP 提示下载
- javascript - 从数据库中获取对象数组并用反应显示它