- ベストアンサー
0にならないはずなのに0になってしまいます.
Z=√(50√3),z=9.306049とおいてe=z-Zを求めるプログラムを次のように作ったのですが,コンパイルしたら0になってしまいます.分かる方ぜひ教えてください.お願いします. #include<stdio.h> #include<math.h> main() { int z,Z,e,p; z=9.306049; Z=sqrt(50*sqrt(3)); e=z-Z; printf("e=%d\n",e); }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> printf("e=%d\n",e); eをdoubleにしたのなら、%dではダメです。 %fとか%gとか、浮動小数点数に対応している 書式文字列を使ってください。
補足
ご返答ありがとうございます. double型にしてみたのですが,e=-1375731712と値が出てきました.これは明らかにおかしいとおもうのですが,なぜでしょうか?Zのところのsqrtの入力が間違っているのでしょうか.初歩的な質問ですみません.ぜひ教えてください.