/*
int, double、暗黙の型変換

int ⇔ double の暗黙の型変換に気をつけましょう。

割り算の時には int の割り算と double の割り算の違いに気をつけましょう。
 */

#include<stdio.h>
#include<math.h>

int main()
{
	int x;
	double y;

	x = atan(1) * 4;
	printf("%f\n", sin(x));
	/* ↑
	 * x の値が π になったつもりでいると・・・
	 * 
	 * double ⇔ int は勝手に変換されてしまう。
	 * コンパイラによっては、double → int の変換を暗黙にしようとすると警告をだすものも。
	 * gcc の場合、-Wall オプションをつければ警告を出してもらえる。
	 */

	y = 11 / 10;
	printf("%f\n", y);
	/* ↑
	 * 暗黙の型変換があるのは代入時のみ。
	 * 11 も 10 も int なので・・・
	 * 
	 * y == 1.1 にしたければ、以下のようにする。
	 * y = (double)11 / 10;
	 * または
	 * y = 11.0 / 10.0;
	 * 
	 * 当然、以下のようなのでは駄目。
	 * y = (double)(11 / 10);
	 */

	return 0;
}

/*
・演習
x を double にしてみましょう。
また、y の値がちゃんと 1.1 になるように修正しましょう。
 */
