
【6日でできるC言語入門】配列の演習プログラム
配列は、多くのデータを一度に扱うためのとても便利な機能です。本章では、配列を使った各種の演習プログラムを通じて、配列の基本から応用までを実践的に学びます。
1次元配列、2次元配列の取り扱い方や、条件による要素の抽出、九九表や集計処理など、プログラム作成力が身につく内容です。

1.配列の基本操作
1.1. 配列の全要素表示
まずは、int型の1次元配列の全要素をfor文で表示する基本例です。
サンプルプログラム1:配列a の全要素を表示
プロジェクト/ファイル名: Lesson36_1/main.c
#include <stdio.h>
int main(void) {
int a[] = { 5, -3, 7, 4, 0, -8, 2 };
int i;
for (i = 0; i < 7; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}実行結果
5 -3 7 4 0 -8 21.2. 条件による要素の抽出
for文+if文で、特定条件を満たす要素だけを取り出して表示します。
| 条件例 | 条件式 | 表示する要素 |
|---|---|---|
| 偶数のみ | a[i] % 2 == 0 | 4, 0, -8, 2 |
| 正の数のみ | a[i] > 0 | 5, 7, 4, 2 |
| 負の数のみ | a[i] < 0 | -3, -8 |
サンプルプログラム2:偶数のみを表示
プロジェクト/ファイル名: Lesson36_2/main.c
#include <stdio.h>
int main(void) {
int a[] = { 5, -3, 7, 4, 0, -8, 2 };
int i;
for (i = 0; i < 7; i++) {
if (a[i] % 2 == 0) {
printf("%d ", a[i]);
}
}
printf("\n");
return 0;
}実行結果
4 0 -8 2サンプルプログラム3:正の数のみを表示
プロジェクト/ファイル名: Lesson36_3/main.c
#include <stdio.h>
int main(void) {
int a[] = { 5, -3, 7, 4, 0, -8, 2 };
int i;
for (i = 0; i < 7; i++) {
if (a[i] > 0) {
printf("%d ", a[i]);
}
}
printf("\n");
return 0;
}実行結果
5 7 4 22.2次元配列を使った応用例
2.1. 九九表の作成
2次元配列を使うことで、掛け算九九の全組み合わせを表形式で管理・出力できます。
サンプルプログラム4:九九表を2次元配列で作成・表示
プロジェクト/ファイル名: Lesson36_4/main.c
#include <stdio.h>
int main(void) {
int mult[9][9];
int i, j;
// 九九の計算
for (i = 1; i <= 9; i++) {
for (j = 1; j <= 9; j++) {
mult[i - 1][j - 1] = i * j;
}
}
// 九九の表を表示
for (i = 1; i <= 9; i++) {
for (j = 1; j <= 9; j++) {
printf("%dx%d=%2d ", i, j, mult[i - 1][j - 1]);
}
printf("\n");
}
return 0;
}実行結果
1x1= 1 1x2= 2 1x3= 3 1x4= 4 1x5= 5 1x6= 6 1x7= 7 1x8= 8 1x9= 9
2x1= 2 2x2= 4 2x3= 6 2x4= 8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x1= 3 3x2= 6 3x3= 9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
4x1= 4 4x2= 8 4x3=12 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
5x1= 5 5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x1= 6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54
7x1= 7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63
8x1= 8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72
9x1= 9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=812.2. 配列要素の集計・統計処理
| 求める値 | 例 | 説明 |
|---|---|---|
| 合計 | sum += a[i] | 全要素の合計 |
| 平均 | sum / (double)配列要素数 | 全要素の平均 |
| 最大値 | if(a[i]>max) max=a[i] | 最も大きい値 |
| 最小値 | if(a[i]<min) min=a[i] | 最も小さい値 |
サンプルプログラム5:合計・平均・最大・最小の計算
プロジェクト/ファイル名: Lesson36_5/main.c
#include <stdio.h>
int main(void) {
int a[] = { 3, 2, 9, 8, 5, 6, 5, 4, 1 };
int i, sum = 0, max, min;
double avg;
int len = sizeof(a)/sizeof(a[0]);
max = min = a[0];
for (i = 0; i < len; i++) {
printf("%d ", a[i]);
sum += a[i];
if (a[i] > max) max = a[i];
if (a[i] < min) min = a[i];
}
avg = sum / (double)len;
printf("\n合計値:%d 平均値:%f 最大値:%d 最小値:%d\n", sum, avg, max, min);
return 0;
}実行結果
3 2 9 8 5 6 5 4 1
合計値:43 平均値:4.777778 最大値:9 最小値:13.配列とループの演習問題
3.1. while文で繰り返し表示
プロジェクト/ファイル名: Lesson36_6/main.c
#include <stdio.h>
int main(void) {
int i = 0;
while (i < 6) {
printf("Hello C!\n");
i++;
}
return 0;
}実行結果
Hello C!
Hello C!
Hello C!
Hello C!
Hello C!
Hello C!3.2. 入力値の範囲表示(for文の応用)
プロジェクト/ファイル名: Lesson36_7/main.c
#include <stdio.h>
int main(void) {
int x, y, min, max, i;
printf("整数値を入力:");
scanf("%d", &x);
printf("整数値を入力:");
scanf("%d", &y);
min = (x < y) ? x : y;
max = (x > y) ? x : y;
for (i = min; i <= max; i++) {
printf("%d ", i);
}
printf("\n");
return 0;
}実行結果
整数値を入力:5
整数値を入力:2
2 3 4 5まとめ
- 配列とfor文/while文の組み合わせで多彩な処理ができる。
- 条件分岐や2次元配列の活用で応用力が身につく。
- 集計・統計処理も配列で簡単に実現可能
C言語の配列操作をしっかりマスターして、実用的なプログラム作成力を養いましょう!
