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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ちゃっと
記事: 1
登録日時: 5年前

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

#1

投稿記事 by ちゃっと » 5年前

2列20行の数値データが書かれているtxtファイルを読み込み、1列目の数値が奇数である2列目の数値の平均を求めたいのですがファイルを読み込んだ後どうやって1列目が奇数かを求めて2列目の計算につなげるのかがわかりません。

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

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

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

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

#2

投稿記事 by Dixq (管理人) » 5年前

読み込みたいデータファイルフォーマットは何ですか?
仮にこんなフォーマットのテキストファイルだとしましょう。

コード:

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ならこんな感じでしょうか。

返信

“C言語何でも質問掲示板” へ戻る