今回が最後の授業です.テストに備えて頑張りましょう.
あるクラスの生徒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);
}