多次元配列の受け渡し

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;
}