2013年9月16日月曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)の4章(基本的な宣言および式)、4.10(浮動小数点数型の除算と整数型の除算)、設問4-2を解いてみる。

その他参考書籍

設問 4-2.

分母、分子ともにint型なので、1 / 3の結果は0になる。そして浮動小数点数型のanswerに0が代入されるときに、0が浮動小数点型の0.0になり、それがprintfによって出力されるから。

>修正。

コード

sample.c

#include <stdio.h>

float answer1;
float answer2;
float answer3;
float answer4;
int main(int argc, char *argv[])
{
    answer1 = 1 / 3;
    answer2 = 1.0 / 3.0;
    answer3 = 1 / 3.0;
    answer4 = 1.0 / 3;
    printf("The value of 1/3 is %f\n", answer1);
    printf("The value of 1.0/3.0 is %f\n", answer2);
    printf("The value of 1/3.0 is %f\n", answer3);
    printf("The value of 1.0/3 is %f\n", answer4);
    
    return (0);
}

入出力結果(Terminal)

$ ./a.out
The value of 1/3 is 0.000000
The value of 1.0/3.0 is 0.333333
The value of 1/3.0 is 0.333333
The value of 1.0/3 is 0.333333
$

0 コメント:

コメントを投稿