小弟自己写的一个物理实验计算数值的程序
输入0.0 60.1 110.3这组数据就显示-1.#IND00 怎么回事??
#include <stdio.h>
#include <math.h>
main()
{
int i;
double c=2982.0,t1,t2,t3,r1,r2,A,B,D,x1=0.0,y1=0.45,x2=0.3,y2=0.0,p,q,x,y,r;
for (i=1;i<=9;i++){
scanf ("%f %f %f",&t1,&t2,&t3);
t1=t1/1000000;
t2=t2/1000000;
t3=t3/1000000;
r1=c*(t1-t3);
r2=c*(t2-t3);
A=x2*(x1*x1+y1*y1-r1*r1)-x1*(x2*x2+y2*y2-r2*r2);
B=y2*(x1*x1+y1*y1-r1*r1)-y1*(x2*x2+y2*y2-r2*r2);
D=r1*(x2*x2+y2*y2-r2*r2)-r2*(x1*x1+y1*y1-r1*r1);
q=atan(B/A);
p=acos(D/(sqrt(A*A+B*B)))+q;
if ((p>=90) || (p<=0))
p=q-acos(D/sqrt(A*A+B*B));
r=(x1*x1+y1*y1-r1*r1)/(2*(x1*cos(p)+y1*sin(p)+r1));
x=r*cos(p)*1000;
y=r*sin(p)*1000;
printf ("%1f %1f\n",x,y);
}
return 0;
}
改好了能用了再+50分
c语言高手进 -1.#IND00求救!!
int i;double c=2982.0,t1,t2,t3,r1,r2,A,B,D,x1=0.0,y1=0.45,x2=0.3,y2=0.0,p,q,x,y,r;for (i=1;i<=9;i++){ scanf ("%lf %lf %lf",&t1,&t2,&t3);t1=t1\/1000000;t2=t2\/1000000;t3=t3\/1000000;r1=c*(t1-t3);r2=c*(t2-t3);A=x2*(x1*x1+y1*y1-...
c语言运行后输入负数出现-1.#ind00是怎么回事?
当使用C语言中的sqrt函数处理负数输入时,你可能遇到类似于"-1.#ind00"的输出。这是因为在C语言中,sqrt函数仅接受非负实数作为参数。当输入负数,如-1,函数尝试计算负数的平方根,这在实数范围内是未定义的。结果,程序会返回一个特殊值,表示计算结果是一个非实数的数,通常表现为“-1.#ind00”...
C语言输出了 -1.#IND00.-1.#IND00 这是什么意思
凡是出现-1.#IND00.基本可以肯定是发生了除0错误。比如k1=-1*(x2-x1)\/(y2-y1);k2=-1*(x4-x3)\/(y4-y3);e=(d-b+k1*a-k2*c)\/(k1-k2);f=(k1*k2*(c-a)+k2*b-k1*d)\/(k2-k1);都可能发生。
C语言中出现1.#IND00如何解决?
(1\/(l*c)-pow(r,2)\/(4*pow(c,2)))我试验了几个数字,结果为负值,不能开sqrt,所以结果是 输出后频率就一直=-1.#IND00 不知道原来公式是什么,发出来,修改一下,应该可以了 printf("=%lf==\\n",(1\/(l*c)-pow(r,2)\/(4*pow(c,2)));看看结果 ...
求C语言大虾...程序出现 -1.#IND00
} else return(c1);} 还有,你的程序函数声明,应该放到main之前,不然,后面的函数在调用f4时,没有函数声明,编译有警告,运行可能也有错误。float f1(float x);float f2(float a1,float a2);float f3(float c1,float c2);float f4(float d1,float d2);void main(){ float x1,x2,x0;
一个简单的c语言程序,输出-1.#IND00..不知道哪里错
简而言之,如果遇到 1.#INF \/ inf,就检查是否发生了运算结果溢出除零,而遇到 1.#IND \/ nan,就检查是否发生了非法的运算。特殊浮点数的判断 很多 C 库都提供了一组函数用来判断一个浮点数是否是无穷大或 NaN。int _isnan(double x) 函数用来判断一个浮点数是否是 NaN,而 int _finite(...
c语言出现-1.#IND00怎么回事?
你给的程序不完整,函数 void NONO() 在程序代码中没有,请给出完整的程序 而且fun 函数没有返回值,在main 函数中的变量sum 的怎么得到?这个程序编译就通不过,根本不可能有结果 如果你是在vc 环境下执行的,结果可能是上一个程序的
...为什么输入1,3,5时运行结果是 -1.#IND00??? 哪错了跪求
你输入1,3,5时,deta=-11了,这时fabs(deta)>1e-6是成立的,于是sqrt(deta)就有问题了。所以,语句 if(fabs(deta)>1e-6)应改为:if(deta>0)
C语言输出了 -1.#IND00是什么意思
凡是出现-1.#IND00.基本可以肯定是发生了除0错误。你这复杂的计算,看的人眼晕,自己加些调试语句查一下吧
c语言结果出现1.#IND00
溢出了,也就是超过了某个变量超过了float型的最大表示范围 e[i]=c[i]\/(b[i]-a[i]*e[i-1]);\/\/第一次执行这语句时,就溢出了,分母为0 此时 i=1 b[i]=2.0 a[i]=1.0 e[i-1]=2.0