使用 Newton-Raphson 方法在 C 中求平方根

2023-12-03

在下面的代码中,我想将终止条件替换为:如果猜测平方与x的比率接近1,则while循环应该终止。我尝试了各种表达式,但没有一个能够正确运行代码。有什么建议吗?

# include<stdio.h>
float absolute(float x)
{
     if (x < 0)
         x = -x;
     return x;
}

float square(float x)
{
    float guess = 1;

    while(absolute(guess*guess - x) >= 0.0001 )
        guess = ((x/guess) + guess) / 2;

    return guess;
}

int main(void)
{
    printf("square root of 2 is %f\n", square(2));
    printf("square root of 3 is %f\n", square(3));
    return 0;
}

找到答案: while 语句应该是这样的:

 while  ( absoluteValue((guess * guess) / x  - 1.0) >= 0.0001 ) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Newton-Raphson 方法在 C 中求平方根 的相关文章

随机推荐

  • gl_PointSize、gl_Position、gl_FragCoord之间的关系

    例子 VS 着色器 void main gl Position vec4 0 0 0 1 gl PointSize 100 0 画布为 1x5 像素 宽度 高度 片段着色器使用 gl FragCoord 这 5 个像素的 gl FragCo
  • 从活动类中打开 Android 导航抽屉

    我正在开发安卓系统Navigation Drawer通过他们的文档看起来 抽屉只能扩展 Fragment Activity 因此要从我的所有活动中打开抽屉 我需要将我的所有活动变成一个片段 这不是一个可行的解决方案 有没有办法打开一个从 A
  • 如何在删除 SQLite 数据库中的行后更新 KEY_ROWID

    从数据库中删除一行后 如何更新 SQLite 数据库中的 KEY ROWID 编号 情况1 例如 如果我的数据库中有五行 则此时 KEY ROWID 的最大值为 5 我删除表中的所有行 然后我添加新行 此时KEY ROWID不再从1开始 它
  • Terraform 从 Packer 中创建的托管磁盘映像创建 VM

    我已经使用 Packer 创建了一个自定义 VM 映像 现在我尝试使用 Terraform 基于此映像创建一个新 VM 但我对如何设置 TF 文件感到困惑 我可以创建其余的基础设施 我认为我的打包器 json 文件创建了一个托管磁盘映像 但
  • Objective-c 中的 AES256 解密问题

    我正在尝试使用以下代码片段来解密文件 该文件是使用 32 字节密钥加密的 因此 当我尝试加密文件数据时 一切正常 但是当我尝试解密时 程序甚至没有通过条件if cryptStatus kCCSuccess 在 CryptoExtension
  • 使用 Visual Studio 或 TFS 在项目之间共享资源(图像/css/js)

    有没有一种有效的方法可以在不同项目之间共享视觉资源 这包括图像 CSS 和 JavaScript 我查看了以下 Stack Overflow 问题 但似乎没有回答这个问题 在 Visual Studio 中的不同项目之间共享 css jav
  • 突出显示一行时是否触发任何事件?

    我创建了一个 ListView 来显示文档列表 然后创建了一个按钮 按钮 A 来执行一些操作 我的要求是我希望按钮状态可以随着所选文档的更改而更改 Fox示例 下图中有三个文档 我希望当我单击Order 00001或Order 00002时
  • 仅从文件的完整路径获取文件名

    我想分割路径 只保存文件名test xls在一个新变量中 namearray C Users z003m Desktop Service Tickets automationscript vbs Newfolder test xls 推荐使
  • Euler 23 在 C# 中:0.2 秒,在 F# 中:30.5 秒。为什么?

    我对这个问题的 F 解决方案不太满意 因为我找不到一个漂亮且快速的解决方案 但这不是这里的问题 问题是 我将解决方案翻译成 C 而且速度很快 就像 相对而言 速度非常快 我不明白为什么 是的 我去过 Reflector C 代码看起来很相似
  • XDebug 真的很慢

    我正在尝试让 XDebug 在我的本地 wamp 安装 Uniform Server 8 上运行 但是当我把xdebug remote enable 1 在我的 php ini 中 这是我的 IDE 使用 xdebug 所必需的 加载页面变
  • WPF 无边框窗口的 DropShadow

    我有一个 WPF 窗口 WindowStyle 设置为 none 有什么方法可以强制这个窗口留下阴影 就像 WindowStyle 不是 none 时得到的阴影一样 我不想将AllowTransparency 设置为true 因为它会影响性
  • 检测 Javascript 中字符串中的重复字母

    用于检测字符串中重复字母的代码 var str paraven4sr var hasDuplicates a zA Z 1 test str alert repeating string hasDuplicates 我正进入 状态 fals
  • 如何在Python中模糊匹配数组列中的项目?

    我有一系列来自 NCAA 的球队名称 以及与其相关的统计数据 学校名称通常会被缩短或完全省略 但名称的所有变体通常都有一个共同元素 例如阿拉巴马州赤潮与赤潮 这些名称全部包含在一个数组中 没有特定的顺序 我希望能够通过模糊匹配来获取团队名称
  • 在“for”循环中读取带有空格、制表符和多个输入文件的完整行

    我看过以下文章 for 环形 它会在出现空格 制表符或换行符等空白时进行分割 为了解决这个问题 我有以下额外的命令 IFS n 但是当我尝试根据以下细节解决上述场景时 我有两个文件 输入1 txt and 输入 txt 在我当前的目录中 b
  • 在 ruamel.yaml 迭代期间获取评论

    当我迭代 YAML 对象时如何获取注释 yaml YAML with open path r as f yaml data yaml load f for obj in yaml data how to get the comments h
  • Wordpress 的 nginx 配置位于同一服务器的 Rails 应用程序的子目录中

    当我尝试访问 example com blog 时 我不断收到 文件未找到 错误 并且在 var log nginx error log FastCGI sent in stderr Primary script unknown while
  • 返回一个随机偶数

    我有以下几种方法 rnd 方法返回两个边界之间的单个随机整数 Create next batch of 55 random numbers void advance random int j1 double new random for j
  • 文件上传控制和 GWT 外观

    我正在编写我的第一个 GWT 项目 我有一个带有标签 文件上传控件和上传按钮的表单 但它们在各种网络浏览器中看起来很糟糕并且差异很大 另外 文件上传控件中的按钮与 GWT 按钮控件的样式不同 另一个问题是 在 Chrome 中 文件选择按钮
  • Android Widget 在更新期间显示奇怪的图像

    我这里有一个奇怪的 我有一台配备 Nextel 的 Motorola i1 运行 Android 1 5 我有一个安卓小部件 当我开始运行更新此小部件的服务时 我看到来自另一个小部件的图像 启动 DC Contact 它在我的小部件的位置显
  • 使用 Newton-Raphson 方法在 C 中求平方根

    在下面的代码中 我想将终止条件替换为 如果猜测平方与x的比率接近1 则while循环应该终止 我尝试了各种表达式 但没有一个能够正确运行代码 有什么建议吗 include