やりたいこと
以下の形式で1000個ほどのデータがcsv形式で与えられています。
番号,データ 1,1.586863293 2,1.560966016 3,1.535381068 4,1.5101134 5,1.485167793 6,1.460548848 7,1.436260997 8,1.412308489 9,1.388695397 10,1.365425617 . . .
これらのdataのみを読み取り、平均値を求めたいです。
ただ、条件があって、data[]配列にデータを読み取って格納したいです。
理由は、後々にdata[i]で一つ一つにアクセスしたいと考えているからです。
困っていること
最も困っていることはカンマでデータが区切られていてそれを一つ一つdataに格納するのが難しい点です。1000個もdataがあることがわかっているのでインデックスは消すのが面倒です。
なので、どうにかしてカンマを飛ばしてdataのみを読み取りたいところに困っています。
例えば、以下のようにdataのみが与えられていた場合であれば読み取って加算することができます。
a.txt
1.5 1.8
#include <stdio.h> #include <math.h> #define rep(i,n) for (int i=1; i<(n);++i) int main(void) { FILE *file; double data[10000]; int cnt=0; // double th; file = fopen("a.txt", "r"); if (file == NULL) { printf("ファイルを開けません/n"); return -1; } double ans = 0.0; for (int i=0;i<2;i++) { fscanf(file,"%le",&data[i]); // printf("%f\n", data[i]); ans += data[i]; } printf("%f\n",ans); return 0; }
このように一行で何とかなりそうなのですが、カンマを除いてデータのみをdataに格納し、そこから平均値を求めるプログラフをアドバイスしていただけると助かります。
どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。