練習問題の解答例

| Topic path: Top / 授業 / C言語基礎 / 配列 / 練習問題の解答例

問題文は[[こちら>授業/C言語基礎/配列/練習問題]]。

*09A-01 配列の宣言(難易度★) [#bdb34e38]
#geshi(c){{
int main(void) {
  int a[5];
  
  a[0] = 1;
  a[1] = 2;
  a[2] = 3;
  a[3] = 4;
  a[4] = 5;

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

  return 0;
}
}}


*09A-02 要素へのアクセス(難易度★) [#afc7c1ba]
#geshi(c){{
int main(void) {
  int a[3];
  
  a[0] = 10;
  a[1] = 20;
  a[2] = 30;

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

  return 0;
}
}}

インデックス番号は 0 から始まるので、最後の要素のインデックス番号は要素数より1小さい数です。


*09A-03 すべての要素へのアクセス(難易度★) [#c937c310]
#geshi(c){{
int main(void) {
  int a[4], i ;
  
  a[0] = 1;
  a[1] = 2;
  a[2] = 3;
  a[3] = 4;

  for (i = 0; i < 4; i++) {
    printf("%d\n", a[i]);
  }

  return 0;
}
}}


*09A-04 配列の初期化(難易度★) [#kd8c237b]
#geshi(c){{
int main(void) {
  int a[] = {10, 20, 30};
  
  printf("%d\n", a[0]);

  return 0;
}
}}
要素数を指定しないで配列を初期化すると、指定したリストの長さが配列の要素数になります。

**別解 [#b7e7767b]
#geshi(c){{
int main(void) {
  int a[3] = {10, 20, 30};
  
  printf("%d\n", a[0]);

  return 0;
}
}}
要素数を指定して配列を初期化することもできますが、指定したリストの長さより小さい要素数を指定することはできません。

指定したリストの長さより大きい要素数を指定したときは、残りの要素に0が代入されます。


*09A-05 配列の要素数(難易度★) [#b7a44786]
#geshi(c){{
int main(void) {
  int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  int len;

  len = sizeof(a) / sizeof(a[0]);
  printf("%d\n", len);

  return 0;
}
}}



*09A-06 配列のコピー(難易度★) [#f38b7d2d]
#geshi(c){{
int main(void) {
  int a[] = {1, 2, 3, 4};
  int b[4];
  int i;

  for (i = 0; i < 4; i++) {
    b[i] = a[i];
  }

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

  return 0;
}
}}


*09A-07 配列の比較(難易度★) [#rae232a2]
#geshi(c){{
int main(void) {
  int a[3] = {1, 2, 3}, b[3] = {1, 3, 5};

  if (a[0] == b[0] && a[1] == b[1] && a[2] == b[2]) {
    printf("等しい\n");
  } else {
    printf("等しくない\n");
  }
  return 0;
}
}}


*09A-08 二次元配列(難易度★) [#t9b0bf62]
#geshi(c){{
int main(void) {
  int a[2][3];
  
  a[0][0] = 10;
  a[0][1] = 20;
  a[0][2] = 30;
  a[1][0] = 40;
  a[1][1] = 50;
  a[1][2] = 60;

  return 0;
}
}}


*09A-09 二次元配列のすべての要素へのアクセス(難易度★) [#u019e29f]
#geshi(c){{
int main(void) {
  int a[3][2], sum;
  int i ,j;

  a[0][0] = 1;
  a[0][1] = 2;
  a[1][0] = 3;
  a[1][1] = 4;
  a[2][0] = 5;
  a[2][1] = 6;

  sum = 0;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 2; j++) {
       sum += a[i][j];
    }
  }

  printf("%d\n", sum);

  return 0;
}
}}


*09A-10 二次元配列の初期化(難易度★) [#reda64ca]
#geshi(c){{
int main(void) {
  int a[][2] = {
    {1, 2},
    {3 ,4},
    {5, 6}
  };

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

  return 0;
}
}}
二次元を配列を初期化するときは、先頭の要素数だけ省略できます。

**別解 [#ac6a97b6]
#geshi(c){{
int main(void) {
  int a[3][2] = {
    {1, 2},
    {3 ,4},
    {5, 6}
  };

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

  return 0;
}
}}
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS