c语言-求平方根不解。。
发布网友
发布时间:2022-04-23 03:57
我来回答
共1个回答
热心网友
时间:2022-07-12 21:20
#include
<stdio.h>
void
main()
{
int
w,i;
double
ss;
double
x,
y;
printf("enter
the
number!\n");
scanf("%lf",&y);
//输入浮点型数据Y,即我们要求平方根的方程
x=y;
//这里把Y赋给X是想把Y的值先保存下来
ss=1.0;
for(w=0;x>=1;w++)
{x=x/10;}
//把X压缩成小数,如100.45就变成了0.10045
w=w-1;
//而W即为X位数减一,以上数为例,把100.45改为0.10045则
W=2;
for(i=1;i<=w;i++)
{ss=ss*10;}
//如果上例,SS变成了100
,到目前为止,以前的工作都是为了求出这个数的最高位。
x=0;
while(ss>1.0/10e4)
{
for(;x*x<y;x=x+ss);
if
(x*x>y)
{
x=x-ss;
ss=ss/10;
}
if
(x*x==y)
break;
}
//以上整个循环语句的作用是这样的,以刚才为例:把平方根定为0.
//如果它的平方等于输入值,就跳出循环;否则就加上100,如果比办输入值大了,就
//取消刚才的动作即(x=x-ss;)
然后再加上10,如果大了就取消,如果小了再加,这样的一步步循环
printf("%lf",x);
//最后输出值
}
//其实这个程序的想法很新颖,如果要我编我也编不出来,这个程序运行的时候很节省空间,运行次数少,是一个好程序。不过对于初学者完全可以利
//另外一种方法去完成,只不过要多循环几次,不过可读性要好一些。