C言語で int型と double型が混在している場合の型変換

スポンサーリンク
スポンサーリンク

Q.C言語で以下のコードを実行した時、ans の値(printfでの表示)はどのようになるでしょうか?

1問目

int ans;
ans = 1/2 + 1/2 + 1/2 + 1/2;
printf( "and = %f\n" , ans );

2問目

int ans;
ans = (double)1/2 + 1/2 + 1/2 + 1/2;
printf( "and = %f\n" , ans );

3問目

int ans;
ans = (double)1/2 + (double)1/2 + 1/2 + 1/2;
printf( "and = %f\n" , ans );

4問目

double ans;
ans = (double)1/2 + (double)1/2 + 1/2 + 1/2;
printf( "and = %f\n" , ans );

5問目

double ans , r;
r = 1;
ans = (double)1/2 + (double)1/2 + 1/2 + r/2;
printf( "and = %f\n" , ans );

6問目

double ans;
ans = 1/2;
printf( "and = %f\n" , ans );

答えは以下のようになります。

1問目:0.000000
2問目:0.000000
3問目:0.000000
4問目:1.000000
5問目:1.500000
6問目:0.000000

いかがでしょうか?
合っていましたか?

コメント

タイトルとURLをコピーしました