【发布时间】:2013-04-12 01:57:13
【问题描述】:
我是 C 语言的新手,正在尝试做一个我们在 uni 提供的实验室教程。
我们被要求做以下事情:
任务 1。 计算数字 n 平方根的巴比伦算法如下: 1. 猜测答案(你可以选择 n/2 作为你的初始猜测)。
- 计算 r = n / 猜测
- 设置guess = (guess +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”左右,但每次都会给出不同的巨大结果。
【问题讨论】:
标签: c algorithm math integer double