当大家需要在C语言编程中实现求解一个数的平方根的时候,大家最容易想到的方法是加载<math.h>头文件,利用这个函数库中的sqrt()函数来得出结果。
那么有没有可能不调用库函数就能计算平方根呢?
其实我们可以运用一些数学知识,我们可以将数学的运算哦,我们可以通过编程计算,省去复杂的计算过程。
#include<stdio.h>
#include<stdlib.h>
/*
**在不调用<math.h>库函数的情况下,利用数学公式计算一个正整数的平方根
*/
int main(void)
{
float new_guess;
float last_guess;
float number;
/*
**由用户输入正整数,并检查合法性
*/
printf( "Please enter a number: " );
scanf( "%f", &number);
if( number < 0)
{
printf("Can't compute the square root of a negative number!\n");
return EXIT_FAILURE;
}
/*
**计算平方根,以下循环必须执行至少一遍
*/
new_guess = 1;
do
{
last_guess = new_guess;
new_guess = (last_guess + number / last_guess) / 2;
printf("%.15e\n" ,new_guess);
}while( new_guess != last_guess );
/*
**打印最终结果
*/
printf("\r\nSquare root of %g is %g\n", number, new_guess);
return EXIT_SUCCES