高手来帮忙看一下这个简单的程序
#include <stdio.h>#include <stdlib.h>
#include <math.h>
float N(float m,float x,float y,float c);
int main()
{
float x,y,c;
float m,n,k,a;
scanf("%f %f %f",&x,&y,&c);
if (x>y)
m=y;
else
m=x;
a=0;
while (fabs(n-1)>=0.000001)
{
k=(a+m)/2;
n=N(k,x,y,c);
if (n-1>0)
m=k;
else if (n-1<0)
a=k;
else if (n-1==0)
continue;
}
printf("%.3f",k);
return 0;
}
float N(float m,float x,float y,float c)
{
float a;
a=c/sqrt(x*x-m*m)+c/sqrt(y*y-m*m);
return a;
}
怎样对程序进行修改不会改变这个程序计算结果的精度,但是可以提高一下速度。。。就是有点超时,纠结啊···