多次元配列の受け渡し
2行3列の行列を加算するプログラム
#include<stdio.h> void mat_add(const int ma[2][3],const int mb[2][3],int mc[2][3]){ int i,j; for(i=0;i<2;i++){ for(j=0;j<3;j++){ mc[i][j] = ma[i][j] + mb[i][j]; } } } int main(void){ int i,j; int ma[2][3] = {{1,2,3},{4,5,6}}; int mb[2][3] = {{6,3,4},{5,1,2}}; int mc[2][3] = {0}; mat_add(ma,mb,mc); for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("%3d",mc[i][j]); } putchar('\n'); } return 0; }
maとmbの和をmcに格納するので、mcはconstを与えずに宣言する。
演習6-10
明解C言語入門の演習。#include<stdio.h> void mul(const int ma[3][2],const int mb[3][2],int mc[3][2]){ int i,j; for(i=0;i<3;i++){ for(j=0;j<2;j++){ mc[i][j] = ma[i][j] * mb[i][j]; } } } int main(void){ int i,j; int ma[3][2] = {{1,2},{3,4},{5,6}}; int mb[3][2] = {{6,5,},{4,3},{2,1}}; int mc[3][2] = {0}; mul(ma,mb,mc); for(i=0;i<3;i++){ for(j=0;j<2;j++){ printf("%3d",mc[i][j]); } putchar('\n'); } return 0; }