【如何在不使用C语言的sqrt函数的情况下获得数字的平方根】每个C程序员都知道C编程语言的math.h头文件。该标题定义了各种数学函数和一个宏。该库中所有可用的函数都将double作为参数, 并返回double作为结果。
该库的已知功能之一是sqrt函数, 这是非常有用的函数double sqrt(double number), 它返回数字的平方根:
#include <
stdio.h>
#include <
math.h>
int main () {/// 2.000000printf("Square root of %lf is %lf\n", 4.0, sqrt(4.0) );
/// 2.236068printf("Square root of %lf is %lf\n", 5.0, sqrt(5.0) );
return(0);
}
很容易吧?但是, 大学的老师不喜欢让学生容易点, 这就是为什么在编程课上你可能需要找到一种方法来找到数字的平方根而不使用C中的该库!
文章图片
由于作业或任务不是可选的, 因此我们将向你展示如何在不使用C语言的sqrt函数的情况下轻松实现这一目标。
实现 首先, 我们将直接为你提供解决方案, 并在文章结尾进行说明:
#include<
stdio.h>
void main(){int number;
float temp, sqrt;
printf("Provide the number: \n");
scanf("%d", &
number);
// store the half of the given number e.g from 256 =>
128sqrt = number / 2;
temp = 0;
// Iterate until sqrt is different of temp, that is updated on the loopwhile(sqrt != temp){// initially 0, is updated with the initial value of 128// (on second iteration = 65)// and so ontemp = sqrt;
// Then, replace values (256 / 128 + 128 ) / 2 = 65// (on second iteration 34.46923076923077)// and so onsqrt = ( number/temp + temp) / 2;
}printf("The square root of '%d' is '%f'", number, sqrt);
}
代码如下所示:最初, 程序将提示用户输入我们要从中查找平方根的数字。我们将数字的一半存储在一个变量中, 将其除以2, 即sqrt。然后, 我们将声明一个temp变量, 该变量将存储sqrt先前值即temp的副本。最后, 我们将循环直到sqrt变量与temp不同为止, 在内部, 我们将使用先前的sqrt值更新temp的值, 依此类推。 sqrt值通过代码中描述的操作更新, 仅此而已。循环结束后, 你将可以打印数字的平方根。
编码愉快!
推荐阅读
- 如何使用sfGuardPlugin在Symfony 1.4中手动登录用户
- 如何在Symfony 4中注册自定义DQL函数(原则扩展)
- 如何建立有编码和无编码的电子学习网站()
- Android格式的日期为Datepicker的MM-DD-YYYY
- Android Studio(我还可以在清单中使用带有appcompat主题的HOLO Light DatePicker吗())
- 设计Facebook参数app_id是必需的
- 如何在android中进行菜单选择器
- android(checkableBehavior =“single”不适用于分组子菜单)
- Android(菜单中的圆角)