当前位置:首页 » 编程语言 » c语言显示ind00怎么办
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言显示ind00怎么办

发布时间: 2022-08-01 15:23:16

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语言编译提示#INF00

  1. scanf ("%lf",&a);得改成scanf ("%f",&a);,因为a是float型。

  2. 当b>=a不成立时,while (b>=a)不执行,e还是初值0,后面的y=pow(e,-1);就产生了被0除错误,显示#INF00。

❸ C语言输出了 -1.#IND00是什么意思

凡是出现-1.#IND00.基本可以肯定是发生了除0错误。

你这复杂的计算,看的人眼晕,自己加些调试语句查一下吧

❹ c语言出现-1.#IND00怎么回事

你给的程序不完整,函数 void NONO() 在程序代码中没有,请给出完整的程序
而且fun 函数没有返回值,在main 函数中的变量sum 的怎么得到?
这个程序编译就通不过,根本不可能有结果
如果你是在vc 环境下执行的,结果可能是上一个程序的

❺ C语言问题,结果出现IND00

我不太明白你的题,但是可以给你一些意见,

这个公式是有最值的吧,建议你将这个公式计算的代码封装到一个函数里,比如是double sin(int n) ret1=sin(n); ret2 = sin(n), 然后就简单了,在循环里这么写 while(ret2 - ret1 < 1e-16)n++;

这样就好了

❻ 新手小白学习C语言时遇到些问题,输出结果总是-1.#ind00 在线等,麻烦详细一点,脑子笨,麻烦了!!!

主要是你的scanf()函数用法错误
举例来说应该是scanf("%f",&a);而非scanf("%f,&a");
另外你的程序中变量a,b,c,d是多余的
完全可以scanf("%f",&shorty);

❼ 一个简单的c语言程序,输出-1.#IND00..不知道哪里错

进行浮点数编程时,如果没有注意,常常会出现输出类似 1.#IND, 1.#INF 或者 nan, inf 之类奇怪的输出。这通常隐含了浮点数操作的异常。

特殊浮点数的含义

1.#INF / inf:这个值表示“无穷大 (infinity 的缩写)”,即超出了计算机可以表示的浮点数的最大范围(或者说超过了 double 类型的最大值)。例如,当用 0 除一个整数时便会得到一个1.#INF / inf值;相应的,如果用 0 除一个负整数也会得到 -1.#INF / -inf 值。

-1.#IND / nan:这个的情况更复杂,一般来说,它们来自于任何未定义结果(非法)的浮点数运算。"IND"是 indeterminate 的缩写,而"nan"是 not a number 的缩写。产生这个值的常见例子有:对负数开平方,对负数取对数,0.0/0.0,0.0*∞, ∞/∞ 等。

简而言之,如果遇到 1.#INF / inf,就检查是否发生了运算结果溢出除零,而遇到 1.#IND / nan,就检查是否发生了非法的运算。

特殊浮点数的判断

很多 C 库都提供了一组函数用来判断一个浮点数是否是无穷大或 NaN。int _isnan(double x) 函数用来判断一个浮点数是否是 NaN,而 int _finite(double x) 用以判断一个浮点数是否是无穷大。

你可能已经注意到了,上面两个函数都是以下划线开头的,因此在可移植性上可能是存在问题的,那么如何实现一个通用的判断版本呢?首先,对于 Nan,可以用下面的代码实现:

bool IsNumber(double x)
{
// 这里的比较操作看上去总是会得到 true
// 但有趣的是对于 IEEE 754 浮点数 NaN 来说总会得到 false!
return (x == x);
}
而下面的代码可以判断一个浮点数是否是有限的(finite, 即既不是 NaN 又不是 infinite):

bool IsFiniteNumber(double x)
{
return (x <= DBL_MAX && x >= -DBL_MAX);
}
其中,DBL_MAX 是 <float.h> 中预定义的常量。

把上面两个函数结合起来,还可以实现一个浮点数是否是 Inf 的判断。

❽ C语言结果是-1.#IND00怎么回事,我应该也没有进行非法的运算呀

主要是输入语句要用%lf

#include<stdio.h>
#include<math.h>
main()
{
doublen,m,x,y,s,t,y0;
printf("Enterx:");
scanf("%lf",&x); //double的输入必须%lf
t=-1;
y=1;
s=x*x;
m=2;
n=2;
do
{
y0=y;
y=y+(t*s)/m;
s=s*x*x;
n=n+2;
m=m*n*(n-1);
t=-t;
}while(fabs(y0-y)>1e-6);
printf("%f,cos(%f)=%f ",n,x,y);
}

❾ C语言出现了-1.#IND00的问题

#include<stdio.h>
#include<math.h>
void main()
{
double l,r,f;
double c;
printf("电感\n");
scanf("%lf",&l);
printf("电阻\n");
scanf("%lf",&r);
for(c=0.01;c<=0.1;c+=0.01)
{ if (1/(l*c)-pow(r,2)/(4*pow(c,2))>=0)
{f=sqrt(1/(l*c)-pow(r,2)/(4*pow(c,2)));
printf("电容=%lf 频率=%lf\n",c,f);}
else
{printf("error!\n");}
}
}
加个if语句判断一下根号下面是否大于0,大于零就执行开根号,小于零就打印error!,运行程序电感输入0.00001,电阻输入90,结果是前两个打印error,后面的8个都能正常打印出频率,你试试。