第2回:配列


今週は,配列について学びます.

配列は,同じ型のデータを一つにまとめて扱うために編み出された方法です.多くのデータを扱うには,なくてはならないものです.

int型一つ分の数値を入れることのできる箱を で表すと,

4つのint型変数を用意するには,

int a, b, c, d;

と宣言し,

この図のようなイメージになります.変数a, b, c, d に同じ仲間の数が入るような場合,これらをまとめて扱うために配列を用います.配列を用いて,4つのint型変数を用意するには,

int a[4];

と宣言し,

この図の用なイメージとなり,4つの変数をまとめて配列aとして扱います.

ここで,中身 a[0] から a[3] (0から3の4個であることに注意)を配列 a の要素とよび,a[0] の 0 のことを,添え字とかインデックスと呼びます.

配列を初期化するには,{ } を使って値を列挙します.

int a[4] = { 1, 2, 3, 4 };


要素への代入と参照

配列の各要素への代入や要素の値の参照は,普通の変数と同じです.

int a[4];
int n = 1;

				
a[0] = 1;
a[1] = 2;

				
printf("%d\n", a[0]);
printf("%d\n", a[n]);

				

注意!!:添え字は,0から(要素数-1)の範囲です.この範囲外の要素を参照しようとすると,ハングアップします.


10個の数の和を求めるプログラム(配列版)

#include <stdio.h>

void main()
{
    int a[10] = {1,2,3,4,5,6,7,8,9,10};
    int i, sum;

    sum = 0;

    for(i=0; i<10; i++){
        sum += a[i];
    }

    printf("合計 = %d\n", sum);
}


[練習]

整数型配列に初期値として,{10,20,30,40,50}を設定する.

キーボードから配列の要素番号を入力すると,その配列の要素の値を表示するプログラムを作成しなさい.

#include <stdio.h>

void main()
{
    int a[5] = {10, 20, 30, 40, 50};
    int num;

    printf("Select  data (0-4):"); scanf("%d", &num);
    if (num<0 || num>4){
        printf("範囲を出ています");
    }else{
        printf("Data  = %d\n",a[num]);
    }
}

[応用]

整数型配列に初期値として,(10,20,30,40,50)を設定したとき,全ての要素の値を表示するプログラムを作成しなさい.

(forループを使って)


【今日の演習】

配列に格納された10個の数を,大きい順に並べかえて表示するプログラム(ソート)を作りなさい.

手順:

まず,「応用」のプログラムを利用して,10個の数を画面に表示するプログラムを作ろう.

大きい順に並べ替えるには,どのようなプログラムを作ったらよいか,考えよう.


Oh-o! Meijiのレポートから(第2回)のところへ,演習で作成したプログラムを送る.プログラムには必ず,学年,組,番号,氏名,メールアドレスを記入すること.