Ameba Ownd

アプリで簡単、無料ホームページ作成

8.2重ループ

2017.08.25 08:40

 繰り返しの中に繰り返しがあるような部分を2重ループと呼びます。九九を表示するプログラムを例に見ていきましょう。

(1) 2重ループのプログラム例 九九を表示するプログラム
 新しいプロジェクトno12にmult1.cというソースを追加して次のプログラムを入力します。

 このプログラムではiのfor文の中にjのfor文があります。このプログラムの場合、iとjの変化は次のようになります。

i=1の時、jのfor文がj=1~9まで実行されます。jのfor文が終わった後、15行目のprintf関数が実行され改行されます。

i=2の時、jのfor文が再度j=1~9まで実行されます。jのfor文が終わった後、15行目のprintf関数が再度実行され改行されます。iが2なので、j=1の時は、i*jが2、j=2の時は、i*jが4、・・・というように2の段が表示されます。

i=3~9で同じことが行われます。

実行結果を下に示します。

演習1 次のプログラムを実行した際に出力されるのは解答群のどれか。

解答群

※ iは1-4まで変化する。i=1の時にはjのfor文は、for(j=1;j<=1;j++){略}、i=2の時にはjのfor文は、for(j=1;j<=2;j++){略}となる。何回13行目のprintfが実行されて、改行のprintf(15行目)が実行されるか考えればよい。

演習2 演習1を参考にfor文を4つ使って次のような出力をするプログラムを作成せよ。

出力
*
**
***
****
***
**
*

演習3 演習1を参考にfor文を3つ使って次のような出力をするプログラムを作成せよ。

出力

   *

  **

 ***

****

演習4 次に示すような九九の表を作成せよ。表示のずれを起こさせないためには、printf("%2d ",i*j); とする

九九の表の前に見出しを付けることを考える。続いて、各段を表示する前にも見出しを付ける。いろいろ試しながら上の表になるように工夫しましょう。