演習 7 : 構造体 (2003年10月30日)

例題 : 成績表の集計をするプログラム

#include <stdio.h> /* 個人の成績の構造体 */ struct data { int english; int lang; int math; }; struct data table[100]; /* 成績表、 最大人数 100 まで */ int main(void) { int i,n; int k; struct data sum; printf("input : number of data "); scanf("%d",&n); /* データ数の入力 */ printf("input data "); for (i = 0; i < n; i++) { scanf("%d",&k); table[i].english = k; scanf("%d",&k); table[i].lang = k; scanf("%d",&k); table[i].math = k; } sum.english = 0; sum.lang = 0; sum.math = 0; for (i = 0; i < n; i++) { sum.english += table[i].english; sum.lang += table[i].lang; sum.math += table[i].math; } printf("english average = %d\n",sum.english/n); printf("lang average = %d\n",sum.lang/n); printf("math average = %d\n",sum.math/n); return 0; }

課題 (最終課題)

20人分の名前と点数のデータが記入されたファイルがある。例題を参考にし
て、以下のような構造体を使って、表を定義し、このファイルを標準入力から
読み込み、点数順に名前を出力するプログラムを作成しなさい。

struct data {
  char name[10];
  int score;
};

なお、ファイルは以下のようなデータが入っているものとする。

名前1 点数
名前1 点数
....

  • 入力に使うファイルは こちらから、ダウンロードすること。このファイ ルを使って、正しく動くかを確認すること。