C 语言中的平方根程序

求一个数的平方根的过程可以分为两个步骤。第一步是求整数部分,第二步是求小数部分。

算法

我们在这里推导出一个求平方根的算法 −

开始
步骤 1 → 定义值 n 以求平方根
步骤 2 → 定义变量 i 并将其设置为 1(用于整数部分)
步骤 3 → 定义变量 p 并将其设置为 0.00001(用于小数部分)
步骤 4 → 当 i*i 小于 n 时,增加 i
步骤 5 → 到目前为止,步骤 4 应该产生整数部分
步骤 6 → 当 i*i 小于 n 时,将 p 添加到 i
步骤 7 →现在 i 有 n 的平方根值
STOP

伪代码

该算法的伪代码可以推导如下 −

procedure square_root( n )
   
   SET precision TO 0.00001
   FOR i = 1 TO i*i < n DO
      i = i + 1
   END FOR

   FOR i = i - 1 TO i*i < n DO
      i = i + precision
   END FOR
   DISPLAY i AS square root

end procedure

实现

该算法的实现如下 −

#include <stdio.h>

double squareRoot(double n) {
   double i, precision = 0.00001;

   for(i = 1; i*i <=n; ++i);           //Integer part

   for(--i; i*i < n; i += precision);  //Fractional part

   return i;
}

int main() {
   int n = 24;

   printf("Square root of %d = %lf", n, squareRoot(n));

   return 0;
}

输出

程序的输出应为 −

Square root of 24 = 4.898980

mathematical_programs_in_c.html