2016-05-22 16 views
-4

ここはCで書かれた行です。 V、0:10 JEaktuálnaヴィスカsnehu -nanodhadovanýCASプリbezpečnépristátieJE 0.000000minútをletisku NAprintfの出力が-nanと0.0000のC言語を出力する理由

//declarations 
int hr, min; 
float CHSnow [143]; 
float ETime [143]; 
int Timer; 
int CCSc; 

printf("V, %i : %i je aktuálna výška snehu na letisku %f a odhadovaný čas pre bezpečné pristátie je %f minút \n", hr, min, CHSnow[Timer], ETime[CCSc]); 

出力は次のように進みます。

大胆な出力変数で何が問題になるのでしょうか? がMatoosh

+0

これは静かな不完全です。 'CHSnow'、' Timer'、 'ETime'、' CCSc'とは何ですか?これは推測ゲームではありません。 – alk

+1

あなたは[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を知るのに十分な長さのメンバーであり、[最小限の、完全で検証可能な例を作成する] (http://stackoverflow.com/help/mcve)。 –

答えて

1

は、浮動小数点数では 、ありがとう、NaNは通常、浮動小数点数と無効な操作を行うことによって、結果「非数」の略です。

番号が表現できない場合は、nanが印刷されます。

これは、初期化されていないデータまたは無効な操作が原因で発生します。

「間違った」0.000000としては、実際に見るべき完全なコードがないので、わからないことが文字通り誰にも分かりません。

コードをデバッグしましたか?

+0

ありがとう、私はそれが0の理由のためにNANであることを発見しました。ブレークポイント1、let.cのmain():012 \t \t \t CHSnow [Timer] = SSnow/N;/* vypocet */ (gdb)print N $ 1 = 0 (gdb)print SSnow $ 2 = 0 (gdb) – Dankonino

関連する問題