以下のソースコードでエラーがでます。なぜでしょうか?どのように変更すればいいのでしょうか?
int _tmain(int argc, _TCHAR* argv[])
{
double v[3];
v[0]=100;
v[1]=100;
v[2]=100;
double xx;
xx=average(v,3); <==ここでエラー
printf("%d",xx);
printf("Type return key to exit");
getchar();
return 0;
}
double average(double v[],int n){
double sum=0;
int i;
for(i=0;i<n;i++){
sum=sum+v[i];
}
return(sum/n);
}
エラーメッセージは
error C2664: 'average' : 1 番目の引数を 'double [3]' から 'long []' に変換できません。
環境はVS2005 C++コンソールアプリケーションです。
よろしくお願いします。
プロトタイプ宣言もない状況で関数の宣言より先に参照が行われているため、
デフォルトの型が適用されているのではないかと思います。
double average(double v[],int n){~}の定義を、int _tmainの定義より
上に書いてはいかがでしょうか。
コメント(1件)
を
long v[3];
にしないとダメなんじゃないのかなぁ?
あと いろいろ型の調節は しないとダメだろうけど。