计算一个数的开平方后值

来源:互联网 发布:需要淘宝店铺代运营的 编辑:程序博客网 时间:2024/05/16 06:27

 

不知道是不是自己大学时代本科的数值分析学的有点忘记了,不太记得计算开平方的算法了。在Points ON C 上看到这个算法,倍感亲切。

/*
** Compute the square root of a number.
*/

#include <stdio.h>
#include <stdlib.h>

int
main()
{
 float new_guess;
 float last_guess;
 float number;

 /*
 ** Prompt for and read the data, then check it.
 */
 printf( "Enter a number: " );
 scanf( "%f", &number );
 if( number < 0 ){
  printf( "Cannot compute the square root of a "
      "negative number!/n" );
  return EXIT_FAILURE;
 }

 /*
 ** Compute approximations to the square root until they
 ** don't change any more.
 */
 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 );

 /*
 ** Print results.
 */
 printf( "Square root of %g is %g/n", number, new_guess );

 return EXIT_SUCCESS;
}

 

原创粉丝点击