char c char a5 int i int b5
イメージ char c; char a[5]; int i; int b[5]; double f; double d[5]; a[4] までの配列要素 しか用意されない。 c a[0] a[1] a[2] a[3] a[4] a[5]はない a[5]='A'; i b[1] b[0] b[2] b[3] b[4] f d[0] d[1] d[2] d[3] d[4] 13
/* test_array. c 配列実験 コメント省略 */ #include <stdio. h> #include <math. h> #define SIZE 3 int main() { int i; double a[SIZE]; double b[SIZE]; double c[SIZE]; /* 次に続く */ 15
/*配列内容表示*/ for(i=0; i<SIZE; i++) { printf("a[%d] =%f n", i, a[i]); } for(i=0; i<SIZE; i++) { printf("b[%d] = %f n", i, b[i]); } for(i=0; i<SIZE; i++) { printf("c[%d] = %f n", i, c[i]); } /* 続く */ 17
最大値を求める。(配列を用いないとき。) /* find_max 2. c コメント省略 */ #include <stdio. h> int main() { /*変数宣言*/ double max; double x 0; double x 1; double x 2; double x 3; /* 次に続く */ 20
/*続き*/ max=0. 0; x 0=0. 0; x 1=0. 0; x 2=0. 0; x 3=0. 0; printf(“x 0 = ?”); scanf(“%lf”, &x 0); printf(“x 1= ?”); scanf(“%lf”, &x 1); printf(“x 2= ?”); scanf(“%lf”, &x 2); printf(“x 3= ?”); scanf(“%lf”, &x 3); 21
} max=x 0; if(max<x 1) { max=x 1; } if(max<x 2) { max=x 2; } if(max<x 3) { max=x 3; } printf("最大値は %6. 2 f です。n", max); return 0; 22
maxindex=0; /*仮の最大値を持つ要素の 添字の設定*/ for(i=0; i<SIZE; i++) { if(x[maxindex]<x[i]) { maxindex=i; } } printf("最大値はx[%2 d]の %6. 2 fです。n", maxindex, x[maxindex]); } return 0; 28
3次元配列のイメージ j cube[0][0][0] cube[0][3][2] k i cube[4][3][2] cube[2][1][0] 34
3次元配列の初期化例 double cube[TATE][YOKO][OKU]; int i; /*配列cubeの次元1の添字*/ int j; /*配列cubeの次元2の添字*/ int k; /*配列cubeの次元3の添字*/ for(i=0; i<TATE; i++) { for(j=0; j<YOKO; j++) { for(k=0; k<OKU; k++) { cube[i][j][k]=0. 0; } } } 35
- Slides: 35