
以下のコードをコンパイル実行すると、printfで表示する変数が全て『+NAN』と表示されます。
-------------------------------
#include<stdio.h>
int main(void){
double Vin,Vref,Vout,dv,P,I,PI,nextV,m;
printf("input Vref : ");
scanf("%f",&Vref);
printf("\ninput Vin : ");
scanf("%f",&Vin);
printf("\ninput Vout : ");
scanf("%f",&Vout);
dv=0;
P=0;
I=0;
m=0;
nextV=0;
printf("dv | P | I | PI | nextV | m | Vout |\n");
for(;;){
dv=Vref-Vout;
printf("%f ",dv);
P=dv*0.1;
printf("%f ",P);
I=I+dv*0.01;
printf("%f ",I);
PI=P + I;
printf("%f ",PI);
nextV = Vout + PI;
printf("%f ",nextV);
m=nextV/(Vin * 7.2);
printf("%f ",m);
Vout = nextV + 2;
printf("%f \n",Vout);
}
return 0;
}
-------------------------
なにがなんだか、何がNANだかわかりません(涙
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
NaNってのは Not a Number で、数じゃない浮動小数点数データのこと。
第5章 浮動小数点
http://web.hc.keio.ac.jp/~fujimura/2002/lang/lec …
の 5.2 あたりを参照してください。
で、計算式のからくりはよくわからんのだけど、
double Vin,Vref,Vout,dv,P,I,PI,nextV,m;
printf("input Vref : ");
scanf("%f",&Vref);
printf("\ninput Vin : ");
scanf("%f",&Vin);
printf("\ninput Vout : ");
scanf("%f",&Vout);
ここの scanf の書式指定は %lf でないとダメです。
>gcc -Wall nan.c
nan.c: In function `main':
nan.c:7: warning: float format, double arg (arg 2)
nan.c:9: warning: float format, double arg (arg 2)
nan.c:11: warning: float format, double arg (arg 2)
nan.c:36:2: warning: no newline at end of file
ということで書式を修正して再度試してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語でAからZまでを表示する...
-
変数について(足し算・引き算)
-
C言語 文字列の比較 compare
-
質問ですが
-
高(1)男子 初めてC言語でコー...
-
カレンダー作成
-
C++
-
C言語の質問です。
-
if~else文の中にまたif~else...
-
至急!!!! C言語のこのプロ...
-
分割コンパイルの初歩
-
コンパイル後のABCを改行させる...
-
C言語についてなのですが、
-
+NANってなんですか??
-
#defineで置き換えられない
-
getcによる空白文字カウントで...
-
*を使ったジグザグのラインをプ...
-
intとcharの配列のアドレスにつ...
-
プログラミングについての質問です
-
C言語で、引数が構造体の場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
c言語で2000年以降カレンダーを...
-
c言語でAからZまでを表示する...
-
【C】fizzbuzzのトリッキーなコ...
-
strcmp
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
コマンドラインに出力した文字...
-
8人分のテストの点数を入力し、...
-
コンパイルエラーについて
-
CTRL+Dでループを抜けるには
-
(C言語)めちゃくちゃな値にな...
-
cshの文字列操作(0埋め)
-
テキストカーソル位置の取得
-
コマンドプロンプトがすぐ消える
-
printfの出力内の文字をdefine...
-
scanfに文字が入力されたときに...
-
台形の面積を求めるプログラム
-
改行について 1行に何個かづ...
-
WM_CLOSEで閉じれないウィンド...
おすすめ情報