當前位置:首頁 » 編程語言 » 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個都能正常列印出頻率,你試試。