今回が最後の授業です.テストに備えて頑張りましょう.
あるクラスの生徒50人の身長(実数)が順に並んだファイルsincho.txtがある.
身長をファイルから配列に読み込み,クラスの生徒の平均身長を求め,各人の身長の平均身長からの差を,kekka.txtファイルに保存するプログラムを作成せよ.
ただし,下線を引いた部分はそれぞれ別の関数を定義すること.
#include <stdio.h> void load(int n, float *d) { int i; FILE *fp; fp = fopen("sincho.txt", "r"); for(i=0;i<n;i++){ fscanf(fp, "%f", &d[i]); } fclose(fp); } float average(int n, float *d) { int i; float sum=0; for(i=0;i<n;i++){ sum+=d[i]; } return sum/n; } void save(int n, float *d, float ave) { int i; FILE *fp; fp = fopen("kekka.txt", "w"); for(i=0;i<n;i++){ fprintf(fp, "%f\n", d[i]-ave); } fclose(fp); } void main() { int n=50; float d[50], ave; load(n, d); ave = average(n, d); save(n, d, ave); }
#include <stdio.h> void load(int n, float *d) { int i; FILE *fp; fp = fopen("sincho.txt", "r"); for(i=0;i<n;i++){ fscanf(fp, "%f", (d+i)); } fclose(fp); } float average(int n, float *d) { int i; float sum=0; for(i=0;i<n;i++){ sum+=*(d+i); } return sum/n; } void save(int n, float *d, float ave) { int i; FILE *fp; fp = fopen("kekka.txt", "w"); for(i=0;i<n;i++){ fprintf(fp, "%f\n", *(d+i)-ave); } fclose(fp); } void main() { int n=50; float d[50], ave; load(n, d); ave = average(n, d); save(n, d, ave); }