1203081549 发表于 2022-11-20 20:48:13

求大佬看看

#include <stdio.h>
int sqrt (int a);
void main(void)
{
    int a=49,b;
    b=sqrt(a);
    printf("%d\n",b);
   
   }
int sqrt(int a)
int z=a/2;
while(z--)
{
   if(z*z==a)
   return z;
   
}
return -1;

}
不能运行,我检查不出来错误

jackz007 发表于 2022-11-20 21:23:40

      自定义函数 sqrt() 采用牛顿迭代法
#include <stdio.h>

#define abs(n) ((n) > 0 ? (n) : -(n))

double sqrt(double a)
{
      double b = a                                        ;
      while(abs(a - b * b) > 1e-15) b = (b + a / b) / 2.0 ;
      return b                                          ;
}

int main(void)
{
      int a = 49                                          ;
      printf("%.0f\n" , sqrt(a))                        ;
}
页: [1]
查看完整版本: 求大佬看看