演習 4 : 配列と表の使い方 (2003年10月9日)

例題 1 : 2の倍数でも,3の倍数でも,また5の倍数でもない整数 を求めるプログラム

#include <stdio.h> int main(void) { int table[1001]; int i; for (i = 0; i < 1001; i++) table[i] = i; for (i = 2; i < 1001; i++) { if (i % 2 == 0) { table[i] = 0; } else if (i % 3 == 0) { table[i] = 0; } else if (i % 5 == 0) { table[i] = 0; } } printf("Answers = "); for (i = 2; i < 1001; i++) if (table[i] != 0) printf(" %d", table[i]); printf("\n"); return 0; }

例題 2 : 数表の縦横の和を求めるプログラム

#include <stdio.h> int main(void) { int table[3][3]; int v_sum[3], h_sum[3]; int row, column, k; printf("input table "); for (row = 0; row < 3; row++) { for (column = 0; column < 3; column++) { scanf("%d",&k); table[row][column] = k; v_sum[column] = 0; } h_sum[row] = 0; } for (row = 0; row < 3; row++) { for (column = 0; column < 3; column++) { v_sum[column] += table[row][column]; h_sum[row] += table[row][column]; } } for (row = 0; row < 3; row++) { for (column = 0; column < 3; column++) { printf("%d\t", table[row][column]); } printf("%d\n", h_sum[row]); } printf("%d\t%d\t%d\n", v_sum[0], v_sum[1], v_sum[2]); return 0; }

課題 1

例題 1のプログラムを参考にして,2から1000までの素数を求めるプログラム を作成しなさい。

課題 2

例題 2のプログラムを参考にして、英語、国語、数学の成績表の平均点を計算 し、出力するプログラムを作りなさい。ファイルには、最初に集計する人の人 数、その後、各人の英語、国語、数学の点数の3つの数字が順に入力されてい るものとする。このファイルを標準入力から読み込み計算する。