C言語:配列とfor文

photo credit: Numbers via photopin (license)

職業訓練3日目でした。

さて、今日は配列とfor文を勉強しました。

配列は、同じ型の変数をまとめたもの。
int a,b,cっていうのをまとめることができる。
独学だと、配列や変数でつまづいてたんですが、
なるほど。と理解しました。
二次元配列もなんとか・・・

そして、for文。

変数で使うiやjは、
数学で言うところのxやyと理解しようと思います。
iやjに特別な意味はないんだっと強く思わないと、
ややこしくなっちゃいそうです。

以下、今日の復習です。

九九表を表示したりする

結果

------------------------------------
九九表を表示
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81
------------------------------------
左上から右下へ斜めに値を拾って表示
  1  4  9 16 25 36 49 64 81
------------------------------------
右上から左下へ斜めに値を拾って表示
  9 16 21 24 25 24 21 16  9
------------------------------------
九九表を全部合計
2025
------------------------------------
九九表の真ん中20個を表示
  9 12 15 18 21
 12 16 20 24 28
 15 20 25 30 35
 18 24 30 36 42
 21 28 35 42 49
------------------------------------

九九表を表示したりする(ソース)

/* 二次元配列で九九の表 */
#include

int main(void){

    /* 宣言 */
    int i,j,ans;
    int hai[9][9];

    /* 二次元配列に九九の値を代入 */
    for(i=0;i<=8;i++){
        for(j=0;j<=8;j++){
            hai[i][j]=(i+1)*(j+1);
        }
    }

    /* 九九表を表示 */
    printf("------------------------------------\n");
    printf("九九表を表示\n");
    for(i=0;i<=8;i++){
        for(j=0;j<=8;j++){
            printf("%3d",hai[i][j]);
        }
        printf("\n");
    }

    /* 左上から右下へ斜めに値を拾って表示 */
    printf("------------------------------------\n");
    printf("左上から右下へ斜めに値を拾って表示\n");
    for(i=0;i<=8;i++){
        printf("%3d",hai[i][i]);
    }

    /* 右上から左下へ斜めに値を拾って表示 */
    printf("\n------------------------------------\n");
    printf("右上から左下へ斜めに値を拾って表示\n");
    for(i=0;i<=8;i++){
        printf("%3d",hai[i][8-i]);
    }

    /* 九九表を全部合計 */
    printf("\n------------------------------------\n");
    printf("九九表を全部合計\n");
    for(i=0;i<=8;i++){
        for(j=0;j<=8;j++){
            ans+=hai[i][j];
        }
    }
    printf("%3d",ans);

    /* 九九表の真ん中20個を表示 */
    printf("\n------------------------------------\n");
    printf("九九表の真ん中20個を表示\n");
    for(i=2;i<=6;i++){
        for(j=2;j<=6;j++){
            printf("%3d",hai[i][j]);
        }
        printf("\n");
    }

    printf("------------------------------------\n");

    return 0;
}