独習C、5章の前章の理解度チェックの2のCについて(その他、質問一件)
Posted: 2012年12月29日(土) 10:51
[1] 質問文
[1.1] 自分が今行いたい事は何か
質問が二つあります。ご教授お願い致します。
(1)独習Cの5章、前章の理解度チェック(データ型、変数、式の詳細)にて、Cコンパイラは次の数値にどのようなデータ型を割り当てるか、という問題があるのですが、その中のC番(数値: 123.45)がわかりません。私はfloat型と答えたのですが、正答はdouble型でした。どちらでも表示出来たので、最小の型を割り当てると思ったのですが、認識が間違っているでしょうか?どうして、また、どのようにdouble型に割り当てられるのか、返信お願い致します。
(2)上記と同じ前章の理解度チェックにて、「ループ制御変数をdouble型にキャストしたものを、sqrt()関数の引数として使用する、1~10までの平方根を表示するプログラム」という問題があるのですが、下記の[1.2] ではなく、
と書いたところ、同様の結果が得られました。その違いは何かをお教えください。
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
[2] 環境
[2.1] OS : Windows
[2.2] コンパイラ名 : VC++ 2010 Express
[3] その他
・Cが始めて勉強する言語です。
[1.1] 自分が今行いたい事は何か
質問が二つあります。ご教授お願い致します。
(1)独習Cの5章、前章の理解度チェック(データ型、変数、式の詳細)にて、Cコンパイラは次の数値にどのようなデータ型を割り当てるか、という問題があるのですが、その中のC番(数値: 123.45)がわかりません。私はfloat型と答えたのですが、正答はdouble型でした。どちらでも表示出来たので、最小の型を割り当てると思ったのですが、認識が間違っているでしょうか?どうして、また、どのようにdouble型に割り当てられるのか、返信お願い致します。
(2)上記と同じ前章の理解度チェックにて、「ループ制御変数をdouble型にキャストしたものを、sqrt()関数の引数として使用する、1~10までの平方根を表示するプログラム」という問題があるのですが、下記の[1.2] ではなく、
と書いたところ、同様の結果が得られました。その違いは何かをお教えください。
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
#include <stdio.h>
#include <math.h>
int main(void)
{
int num;
printf("1~10までの平方根を表示するプログラム\n");
for(num = 1; num <= 10; num++)
printf("%d の平方根は %lf です。\n", num,sqrt((double) num) );
return 0;
}
[2] 環境
[2.1] OS : Windows
[2.2] コンパイラ名 : VC++ 2010 Express
[3] その他
・Cが始めて勉強する言語です。