また質問させていただきますm(_ _)m
Cの方もようやく「ファイル入出力」の分野まで進んできました。
そこでまた課題が出ました。
『整数が書かれたファイル(添付ファイルのような感じです)を読み込み、その平均値を画面に出力するプログラムを書け。ただし、ファイルから入力データを読み込む部分、平均値を計算する部分、結果を出力する部分のそれぞれを関数にせよ。』
main関数の中に全て書き込むプログラムなら出来たのですが、それぞれを関数に分けるとなると急に分からなくなります。
↓は自分なりに上記のプログラムを崩しながら作ってみたプログラムです。
/* ファイルから読み込んだ整数値の平均を求める */ #include<stdio.h> /* ファイルを読み込む関数 */ void r_file(FILE *fp) { fp = fopen("file02.txt", "r"); fclose(fp); } /* ファイル内の整数値の平均を求める関数 */ double average(FILE *fp, int *sum, int *i) { int n; /* ファイル内の整数を格納する変数 */ double ave; while (fscanf(fp, "%d", &n) != EOF) { sum = sum + n; /* ファイル内の整数の和を求める */ i = i + 1; /* ファイル内の整数の個数を求める */ } ave = sum / i; return ave; } /* 結果を出力する関数 */ void output(double ave) { printf("ファイル内の整数値の平均--> %5.2lf\n", ave); } int main() { FILE *fp; int sum = 0, i = 0; double ave; r_file(fp); ave = average(fp, &sum, &i); output(ave); return 0; }
特にr_file関数で読み込んだファイルを、どうすればaverage関数で計算処理できるのか(?)がよく分からない状態です。
(すみません、上手く言えなくて・・・
添削していただいて、ここはこう書くんだよとか、こうするべきところを教えていただければと思います。
宜しくお願いします。