#include int main(void) { /* 変数imaxを宣言する。 定数imaxはデータの個数を表す。 */ int imax=20, i, iy; /* 配列aを宣言する。 */ float a[imax]; float aa; /* ファイルポインタfpを宣言する。 */ FILE *fp; /* データを読みこむ。 */ /* ファイルを開く。 モードは"r"(テキストファイルの読みこみ)を指定する。 */ fp = fopen( "data05.txt", "r" ); /* ここからデータを読みこむためのforループが始まる。 データの個数だけ反復する。 */ for (i=0; i<=imax-1; i++) { /* 関数fscanfでデータを読みこむ。 ファイルポインタfpを指定する。 書式は"%d %f"(整数、浮動小数点)を指定する。 データファイルの各行の第1要素が年、 第2要素が配列aに読みこむデータである。 関数から変数の値を返すときは、変数の値そのもの(たとえばiy)ではなく、 その変数へのポインタ(たとえば&iy)が返ってくることに注意。 */ fscanf( fp, "%d %f", &iy, &aa ); a[i] = aa; /* ここでforループが終了する。 */ } /* ファイルを閉じる。 */ fclose( fp ); /* ここからデータを書き出すためのforループが始まる。 データの個数だけ反復する。 */ for (i=1; i<=imax; i++) { /* b[i]の値を標準出力に書き出す。 書式は" %4d %5.1f"を指定する。 "%4d"は4ケタの整数、 "%5.1f"は全体が5ケタで小数点以下が1ケタの実数という意味である。 */ printf( " %4d %5.1f\n", 1990+i, a[i-1] ); /* ここでforループが終了する。 */ } return 0; }