gpt4 book ai didi

c - 基本C程序,巴比伦算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:13 24 4
gpt4 key购买 nike

我是 C 语言的新手,正在尝试完成我们在大学获得的实验室教程。

我们被要求执行以下操作:

任务 1。计算数字 n 的平方根的巴比伦算法如下:1. 猜猜答案(您可以选择 n/2 作为您的初始猜测)。

  1. 计算 r = n/猜测
  2. 设置猜测=(猜测+r)/2
  3. 返回第 2 步进行必要的多次迭代。步骤 2 和 3 越多重复,接近的猜测将成为 n 的平方根。

编写一个程序,输入一个整数 n,遍历巴比伦算法五次,并将答案输出为小数点后两位。你的回答会对于较小的 n 值最准确。

这是我写的:

#include <stdio.h>
#include <math.h>

int n;

main(void){
printf("Enter a value for n: ");
scanf("%d",&n);
double guess = n / 2;
for (int i = 0; i < 5; i++) {
double r = n / guess;
double guess = (guess + r) / 2;
}
printf("%d",guess);
}

我哪里做错了?它吐出荒谬的结果;例如,如果我输入“4”作为 n,答案应该在“2”左右,但每次都会给出不同的巨大结果。

最佳答案

另一个解决方案是:

guess = guess / 2.0; 

这将“强制”进行浮点运算。

并且变量 guess 已经在范围内。你不能重新声明它(就像你在循环中所做的那样)。您只能为其设置一个新值。

并且您还需要将 printf 更改为:

printf("%f",guess);

查看此链接以获取有关 printf 格式化程序的更多信息:

http://www.cplusplus.com/reference/cstdio/printf/

关于c - 基本C程序,巴比伦算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15961868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com