私は次のように機能があり、intの配列の平均値を求める関数を定義:C言語のprintfフロートエラー
float MeanInt(int x[],int num){
float mean, sum = 0.0f,res=0.0f;
int i;
for(i=0;i<num;i++){
sum += (float)(x[i]);
printf("x[%d] is %d\n", i,x[i]);
printf("sum is %f\n", sum);
}
res = sum/((float)(num));
printf("mean should be %f\n", res);
return res;
}
printf()
この関数内ですべてが正常に動作します。以下のように の問題は、私は私のプロジェクトでそれを使用するときにということである。
printf("mean number is %f\n", MeanInt(ls_tr_acl,num_round));
私はというエラーに会う: 形式%f
はタイプdouble
の引数を期待していますが、引数2は、私はint
を入力しています関数MeanInt()
内のprintf()
が正確な結果を正確に表示するため、完全に混乱します。私もいくつかのおもちゃの例でMeanInt()
をテストし、それは常に正しく動作します。この問題はプロジェクトで実行した場合にのみ発生します。
[Cのユーザー定義関数の競合型の可能な複製](http://stackoverflow.com/questions/35435953/confliction-type-for-a-user-defined-function-in-c) – usr2564301