ファイルから数値を読み込んで、各行における標準偏差を記録するプログラムを作っているのですが、実行してみたところほとんどの値が0でした。printfで読み込んだ値を見てみましたが、data[0][0]以外はほぼ全て0となっているようです。何が原因でデータが読み込まれないのか、もし分かりましたら教えてください。ソースコードは以下の通りです。データファイルは添付できないようなので画像(一部)のみ添付します。データファイル自体には問題はないと思います。
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ double sum; double sum2; double sumave = 0; double sum2ave = 0; int i,j; double data[199][19]; double var; FILE *fp; FILE *fp2; fp = fopen("Output.txt", "r"); fp2 = fopen("output.txt", "w"); for(i=0; i<20; i++){ for(j=0; j<200; j++) fscanf(fp, "%lf", &data[i][j]); } printf("%lf\n", data[1][0]); for(i=0; i<200; i++){ sum =0; sumave= 0; sum2 =0; sum2ave= 0; for(j=0; j<20; j++){ sum += data[i][j]; sum2 += pow(data[i][j], 2.0); } sumave = pow(sum/19.0, 2.0); sum2ave = sum2/19.0; var = sum2ave - sumave; fprintf(fp2, "%ld , %f\n", 5000*((long)i+1) , sqrt(var) ); } fclose(fp); fclose(fp2); return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/29 14:23