「数値計算法レポート1」の編集履歴(バックアップ)一覧はこちら
「数値計算法レポート1」(2011/05/27 (金) 15:56:19) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**under construction...
//C/linenumber
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
double avg,stddev,temp,sum,sumsq,cnt;
FILE *fpdata1, *fpdata2;
if( ( fpdata1 = fopen("temp.dat","rb")) == NULL){
printf("error:cannot open temp.dat \n");
exit(1);
}
if( ( fpdata2 = fopen("report.txt","w")) == NULL){
printf("error:cannot open file \n");
exit(2);
}
sum=0;
sumsq=0;
for(cnt=0; ;cnt++){
fscanf(fpdata1,"%lf",&temp);
printf("input %lf\n",temp);
if(temp==0.){
printf("\n done! \n");
break;
}
sum = sum + temp;
sumsq = sumsq + pow(temp,2);
printf("sum = %lf\n",sum);
}
avg=sum/cnt;
stddev=sqrt((sumsq-cnt*pow(avg,2))/(cnt-1));
fprintf(stderr,"cnt = %.0lf\naverage = %.1lf\nstandard deviation = %.1lf\n",cnt,avg,stddev);
fprintf(fpdata2,"average = %.1lf\nstandard deviation = %.1lf\n",avg,stddev);
fclose(fpdata1);
fclose(fpdata2);
}