
Caliphです!
皆さんは、c言語の入門で、重要な3つの要素配列について、いままで学習していました。これで、できないことはありません。
しかし、今回の記事で説明すると「配列」を学習すると、今までよりできることが広がり、繰り返し処理などをさらに活用することができます。
配列について
配列とは
それでは、配列というものが、どんなものなのか、簡単に説明していきたいと思います。
以下の記事で、c言語の変数をいうものを説明しました。簡単にいうと数字を格納することができる箱のようなものでしたね?。
バケツのような数(変数)を実際に使ってプログラミングをしよう!

今回説明するc言語の「配列」というものは、上記の変数をすごく進化させたようなもので、複数の変数を、1つの変数として扱うことができるんです!
配列を使ってみよう!
それでは、説明するより手を動かした方が分かりやすいので、実際に以下のc言語のソースコードをコンパイルして実行して見ましょう!
実行結果は、以下のようになると思います。
5 6 100 123 8 5
ここで新しく出てきた「配列」というものを説明します。
4行目の a[5]というところに、注目してください。
これはaという変数を[0]から[5]の6つ作成する。という解釈をしてください。
「今までの変数 + 変数を番号分けしちゃいました!!」という感じです。理解しなても良いので、イメージを掴んでおきましょう。
配列を使用することのメリット
上記の説明で、配列というものがどのようなものか、イメージをつかむことができたと思います。
しかし、先ほどのソースコードだけでは、「配列」のメリットを1ミリも使うことができてなく、今までの変数と全く同じです。
そこで次は配列の具体的な使い方を説明します。以下のc言語のソースコードをコンパイルし、実行して見ましょう。表示する部分だけを先ほどのコードから書き換えています。
実行結果は、1つ前のものと同じです。
それでは、printf関数に注目してください。先ほどのソースコードでは、配列を普通の変数と同じように1つづつ入力していたのに対して、今回のコードでは、for文を使用して配列aの[]内に数字代入し、入力を省きました。
これこそが配列のメリットです。今回のソースコードでは、配列の要素の数が[5]なので6つのデータしか扱っていません。
しかし、これがたくさんのデータになると、1つづつ打ち込むことは困難となり、配列を使用しなければなりません。
最後に、配列を使い問題を1つといて見ましょう。
【問題】ある n 人の生徒のテストの点数を入力し、最低点、最高点、平均点を出力しなさい。ただし、n個のテストの点数は、配列に代入すること。また生徒の最大人数nは100人
それでは、できるだけ答えを見ずに、解いてください。回答はこの後のソースコードに示します。
文字列について
文字列とは?
今まで文字を扱うときは、変数1つにつき1文字しか使用することができませんでした。しかし、先ほど学習した配列を使用すると、たくさんの文字を使用した文章などの文字列をプログラムの中で扱うことができるようになります。
文字列を使ってみよう
それでは、実際に文字列を使用してみましょう!!下のコードをみてください。
出力
Hello World! 配列の 0 番目は H 配列の 1 番目は e 配列の 2 番目は l 配列の 3 番目は l 配列の 4 番目は o 配列の 5 番目は 配列の 6 番目は W 配列の 7 番目は o 配列の 8 番目は r 配列の 9 番目は l 配列の 10 番目は d 配列の 11 番目は !
それでは、解説をしていきたいと思います!
とりあえずソースコードを実行してみましょう。すると、上記のような出力が出てくると思います。
このプログラムでは、tという配列にHello World!という文字列を代入します。(t[]の[]は、配列であるということを表しています。)
for文の中では、配列tを要素数1から順に表示しています。(for文の範囲指定で使用しているstrlen()という関数は、配列の長さをすることができます)
出力結果より、配列に文字列を代入した場合、t[H,e,l,l,o, ,W,o,r,l,d,!]という風に、格納されることが確認できました。また、%sは、文字を表示するときに使い、%cは文字列を使用すると気に使います。
%sや、%cがどのようなものか忘れている方は、こちらの記事でもう一度確認しましょう!


まとめ
ここまでお疲れ様でした!配列は、少し複雑ですが、使いこなせるようになるとコードを書いていくときに効率が上がります。
逆に配列を使用しないと大変なことになるので、しっかりと理解しましょう。
