Cで、以下の問題を考えています。(VisualStudio2013)
「一連の浮動小数点数の平均値を求めるavg()関数を作成せよ。この関数の引数は1つ目は配列(浮動小数点数の数値が入っている)へのポインタで、2つ目は配列のサイズを指定する整数とする。そしてこの関数を実際に用いよ。」
コードはこう書きました。
#include<stdio.h> #define N 5 double avg(double *x, int i); void main(){ int n; double y[N], z; for (n = 0; n < N; n++){ scanf_s("%lf", &y[n]); } z = avg(y, N); printf("平均値%f", z); getchar(); } double avg(double *x, int i){ double sum; int j; sum = 0; for (j = 0; j < i; j++){ sum = sum + x[i]; } return sum / (double)i; }
これを実行してみたら、main()内での数値入力では問題なかったのですが、平均値を求めようとすると全く意味のない数値が出てきてしまい、平均値を求められませんでした。avgでの配列ポインタ引き渡しに問題があると思われます。しかし、私ではこのどこに問題があるのかが分かりかねます。初歩的な質問ですが、どこに問題があるかを指摘してくださればありがたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/03 09:50
2017/02/03 09:50