もうひとつお願いします。

[1] 授業単元:プログラム
[2] 問題文:
整数型intの値を、どの段階で実数型doubleに型変換すべきか検討しなさい。
2つ以上の場合で実際にプログラムを作成し、計算結果が同じとなるデータ、
異なるデータを示しなさい。
計算結果が異なる場合、なぜそうなるのか、コンピュータの計算原理、
コンピュータの計算原理をふまえて説明しなさい。

#include<stdio.h>
int main(void) {
int x, y, z;

printf("xを入力して下さい。: ");
scanf("%d", &x);
printf("yを入力して下さい。: ");
scanf("%d", &y);
printf("zを入力して下さい。: ");
scanf("%d", &z);

printf("[x+y+z] heikin = %f\n", (double)( x + y + z ) / 3);
return(0);
}

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC++ 6.0
 [3.3] 言語:C++
[4] 期限:2006年10月23日まで
[5] その他の制限: なし