プロが教えるわが家の防犯対策術!

C言語の問題で2つの4x4行列の2次元配列に格納し、それらの積を求めるというプログラムで以下のような関数を作成しました。

#include <stdio.h>
void m_ena(int a0[4][4], int a1[4][4], int result[4][4]);

int main(void)
{
}
void m_ena(int a0[4][4], int a1[4][4], int result[4][4])
{
int a[4][4], b[4][4], r[4][4];
int i, j;

for(i=0; i<4; i++){
for(j=0; j<4; j++){
scanf("%d", &a[i][j]);
}
}
for(i=0; i<4; i++){
for(j=0; j<4; j++){
scanf("%d", &b[i][j]);
}
}
for(i=0; i<4; i++){
for(j=0; j<4; j++){
r[4][4] = a[i][j]*b[i][j];
}
}
}

ここまで出来たのはいいのですが、これ以降どのようにメイン関数に書けばいいのか分からず困っています。
この問題は必ず上記関数を使う必要がありますのでどうぞよろしくお願いします。

A 回答 (2件)

m_ena関数の引数が関数の中で使われていません。



問題がよく分かりませんが、
scanfで二つの行列を読み込むところは、
main関数の中でやるんじゃないでしょうか?

その上で、
m_ena(a0, a1, result);
などと書いて関数を呼び出して計算させ、

あとは、printfで結果を出力するくらいでしょうか。
    • good
    • 0

とりあえずmain関数からm_ena関数を呼ぶだけでしたら


int main (void)
{
m_ena(a0, a1, result) ;
}
のように書けば呼び出しは可能ですが、そのままではコンパイルのエラーが出たり、その他色々問題があります。
仮引数と実引数の関係に関してもう少し調べてみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!