※ ChatGPTを利用し、要約された質問です(原文:C++の配列について教えてください。)
C++の配列について教えてください
C++の配列について教えてください。
なぜ平均のところだけ少数以下がすべて0になってしまうのでしょうか。
ご教授お願いします。
//--- ソース ---
#include "stdafx.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
int no[100],ten1[100],ten2[100],ten3[100],i,n;
double a[100];
scanf("%d", &n);
for(i=0; i<n; i++) scanf("%d%d%d%d", &no[i], &ten1[i], &ten2[i], &ten3[i]);
for (i=0; i<n; i++)
{
a[i] = (ten1[i] + ten2[i] + ten3[i]) / 3;
}
printf("番号 地理 歴史 日本史 平均\n");
for(i=0; i<n; i++) printf("%2d%8d%5d%4d%7.1f\n", no[i], ten1[i], ten2[i], ten3[i], a[i]);
return 0;
}
//--- 実行結果 ---
10
1 35 57 45
2 57 69 67
3 74 65 84
4 45 67 39
5 26 67 29
6 86 77 57
7 13 26 67
8 98 85 58
9 54 50 34
10 45 63 19
番号 地理 歴史 日本史 平均
1 35 57 45 45.0
2 57 69 67 64.0
3 74 65 84 74.0
4 45 67 39 50.0
5 26 67 29 40.0
6 86 77 57 73.0
7 13 26 67 35.0
8 98 85 58 80.0
9 54 50 34 46.0
10 45 63 19 42.0
3.14159
3.14159
お礼
ありがとうございます。 無事小数点以下が正常に出力されました。 コンパイラはVisual C++ 2008でした。 キャストを忘れていたようです。 しかしこれで1時間近く悩むとは・・・><; 参考までに修正したプログラム↓ for (i=0; i<n; i++) { a[i] = (double)(ten1[i] + ten2[i] + ten3[i]) / 3; }