c - 计算平方根的自定义程序未显示任何输出
问题描述
这是一个用户定义的程序,用于打印数字的平方根。它应该也适用于不是完美正方形的数字。每次i
增加一步,如果等于 ,则检查的值。如果相等,则打印的值。0.01
i*i
n
i
#include <stdio.h>
void squareRoot(double);
int main()
{
double num;
scanf("%lf", &num);
squareRoot(num);
return 0;
}
void squareRoot(double n)
{
double i;
for (i = 0; i < n; i += 0.01)
{
//printf("%.2lf\n",i*i);
if (i * i == n)
{
printf("%lf\n", i);
break;
}
}
}
解决方案
由于评论中解释的原因,您使用的方法充其量是非常不准确的,有几种计算平方根的方法,对于这个示例,我将使用巴比伦方法,其简化形式很容易使用简单的算术运算:
#include <stdio.h>
double squareRoot(double);
int main() {
double num;
printf("Enter number: \n");
scanf("%lf", &num);
if(num < 0) {
puts("Negative values not allowed");
return 1;
}
printf("Square root of %.2lf is %lf", num, squareRoot(num));
}
double squareRoot(double num) {
double sqroot = num / 2, temp = 0;
while (sqroot != temp) {
temp = sqroot;
sqroot = (num / temp + temp) / 2;
}
return sqroot;
}
推荐阅读
- c# - 编写函数(方法)打印出交易明细
- angular - Angular 7:如果存在值,则在 addControl 上触发值更改
- bash - 当 awk 中的模式规则不正确时执行的命令,有什么问题?
- haskell - 了解 Haskell 的懒惰
- c++ - 这段代码是否进行了多次实例化以及如何避免它?
- javascript - How to store login information for an api which requires Username - Password for the next session
- javascript - 获取周围坐标
- python - 如何将 PyTorch 张量更改为具有不同尺寸的一半大小和/或两倍大小?
- sql-server - 为维度实现临时表以跟踪更改
- java - MaterialCalendarView decorator overrides selected day color issue