我是 C 语言的新手,正在尝试做一个我们在 uni 提供的实验室教程。
我们被要求做以下事情:
任务 1. 计算数字 n 的平方根的巴比伦算法如下: 1. 猜测答案(您可以选择 n/2 作为初始猜测)。
- 计算 r = n / 猜测
- 设置猜测 = (猜测 +r) / 2
- 根据需要返回步骤 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”左右,但每次都会给出不同的巨大结果。