c語言輸出了,C語言輸出了1IND00是什麼意思

2021-03-04 04:14:04 字數 2378 閱讀 7254

1樓:匿名使用者

凡是出現-1.#ind00.基本可以肯定是發生了除0錯誤。

你這複雜的計算,看的人眼暈,自己加些除錯語句查一下吧

一個簡單的c語言程式,輸出-1.#ind00..不知道**錯

2樓:匿名使用者

進行浮點數程式設計時,如果沒有注意,常常會出現輸出類似 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)

而下面的**可以判斷一個浮點數是否是有限的(finite, 即既不是 nan 又不是 infinite):

bool isfinitenumber(double x)

其中,dbl_max 是 中預定義的常量。

把上面兩個函式結合起來,還可以實現一個浮點數是否是 inf 的判斷。

3樓:你真的良心

#include

#include

void main()

可以了,弄半天哦

4樓:德昂當

sqrt()的引數是負數的話,它會輸出錯誤提示。

你輸入的 a,b,c 三個值 進行 b*b-4*a*c 後可能是個負數。

5樓:匿名使用者

當c=0是x=0,可能有資料溢位現象

6樓:頻青無燁磊

double型別應該使用%lf來格式化輸入和輸出`

尤其是錄入資料時不能錯,輸出可以忽視精度.

c語言出現了-1.#ind00的問題

7樓:

#include

#include

void main()

else}}

加個if語句判斷一下根號下面是否大於0,大於零就執行開根號,小於零就列印error!,執行程式電感輸入0.00001,電阻輸入90,結果是前兩個列印error,後面的8個都能正常列印出頻率,你試試。

8樓:鳴天飛鳥

(1/(l*c)-pow(r,2)/(4*pow(c,2)))我試驗了幾個數字,結果

為負值,不能開sqrt,所以結果是

輸出後頻率就一直=-1.#ind00

不知道原來公式是什麼,發出來,修改一下,應該可以了看看結果

9樓:縱學岺貳倩

溢位了,也就是超過了某個變數超過了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

10樓:斂聖戲鵬翼

我不太明白你的題,但是可以給你一些意見,

這個公式是有最值的吧,建議你將這個公式計算的**封裝到一個函式裡,比如是double

sin(int

n)ret1=sin(n);

ret2

=sin(n),

然後就簡單了,在迴圈裡這麼寫

while(ret2

-ret1

<1e-16)n++;

這樣就好了

c語言字元輸出,C語言輸入輸出字串

include int main d輸出的是有符號的整數,超過127的數字,在二進位制的最高位就是1了。那麼在後符號數的首位標記正負。如果是1,就是負數了。具體還是看看補碼運演算法則吧 c語言的字元是ascii編碼 標準的ascii碼只到127吧 沒記清楚 大概是這個數 char 的變數存的值太大直...

C語言字串輸出亂碼,C語言,字串輸出是亂碼

輸出來亂碼是必須的,因為你的數源據型別搞錯了bai,你使用的是字元 du函式zhistringcopy 來拷貝字元 那麼要處理的數dao據當是char型別,然而你所定義的指標應當也是char型別 你應當修改的地方是 int str1,str2 請將int改為char 將你程式中的所有int替換為ch...

C語言,幫忙看看哪裡出了問題,C語言問題幫忙看看問題出在哪裡?

doa i j 1 a i j while j 2 a i 0 a i 2 你寫的這個什麼意思呢 它實際上的意思是j 2時 執行a i j 1 a i j 但你的意思可能是j 2時 執行a i 0 a i 2 這是你對do while 不瞭解造成的 再去學習下額然後你寫的思路也不對 你那樣是達不到那...