C语言不用math开开方
时间: 2023-11-23 12:58:43 浏览: 28
可以使用牛顿迭代法来计算开方,具体实现如下:
```c
#include <stdio.h>
double sqrt(double x) {
if (x == 0) {
return 0;
}
double last = 0;
double result = 1;
while (result != last) {
last = result;
result = (result + x / result) / 2;
}
return result;
}
int main() {
double x;
printf("请输入一个数:");
scanf("%lf", &x);
printf("%lf的平方根是%lf\n", x, sqrt(x));
return 0;
}
```
在牛顿迭代法中,我们通过不断逼近来求出一个数的平方根。具体步骤如下:
1. 选定一个初始值,通常为1。
2. 用这个初始值来求出新的逼近值。
3. 用新的逼近值来求出另一个新的逼近值。
4. 不断重复步骤2和步骤3,直到逼近值足够接近真实值为止。
在这个程序中,我们使用了一个 `while` 循环来实现这个过程。在每次循环中,我们将上一次的逼近值保存在 `last` 变量中,然后通过牛顿迭代公式 `(result + x / result) / 2` 来求出新的逼近值。如果新的逼近值与上一次的逼近值相同,说明已经收敛到了真实值,可以退出循环。最终返回的就是求出来的平方根。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)