ページ 11

c言語 ファイルの読み込み、計算

Posted: 2018年7月22日(日) 14:45
by ちゃっと
2列20行の数値データが書かれているtxtファイルを読み込み、1列目の数値が奇数である2列目の数値の平均を求めたいのですがファイルを読み込んだ後どうやって1列目が奇数かを求めて2列目の計算につなげるのかがわかりません。

自分の考えでは1列目と2列目を別の配列において別々に計算するのかと思ったのですが、列ごとに配列に置く方法もよくわからず詰まってしまいました。

現状
ファイルを読み込むところまでは出来ました。

Re: c言語 ファイルの読み込み、計算

Posted: 2018年7月22日(日) 19:41
by Dixq (管理人)
読み込みたいデータファイルフォーマットは何ですか?
仮にこんなフォーマットのテキストファイルだとしましょう。

コード:

1,1
2,1
3,2
4,2
5,1
6,1
7,2
8,2
9,1
10,1
11,1
12,1
13,2
14,2
15,1
16,1
17,2
18,2
19,1
20,1
言語は何でしょうか?C?C++?
別に配列に入れる必要ないんじゃないでしょうか?
例えば1列目が奇数である行の2列目の合計を計算してみましょう。

コード:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
    FILE* file = fopen("dat.txt", "r");
    if (file == NULL) {
        return 0;
    }
    int sum = 0;
    for (int i = 0; i < 20; i++) {
        int id, n;
        fscanf(file, "%d,%d\n", &id, &n);
        if (id % 2 == 1) {
            sum += n;
        }
    }
    printf("合計 = %d", sum);
    fclose(file);
}
C++でかけばもっと簡単でしょうけど、Cならこんな感じでしょうか。