配列で積を求めるには? – プログラミング – Home

配列で積を求めるには?
 
通知
すべてクリア

配列で積を求めるには?


ソリッド
 ソリッド
(@ソリッド)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

初めておじゃまします。ソリッドと申します。
早速質問なんですが、

配列の問題で

 123   15
 456 と 53
       81

の行列の積を求めよとゆうのがあるんですが、なかなかうまくいきません。

配列の部分が

int a[2][3]={{1,2,3}{4,5,6}};
int b[3][2]={{1,5}{5,3}{8,1}};

とゆう風になって、for文でやればうまくいくと思うのですが・・・。
どなたか教えていただけないでしょうか?


引用解決済
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

問題と配列の定義から推測すると配列の定義は合っていると思います.

答えを書くのは簡単なのですが
現在はどうゆう処理を書いてどうゆう結果になったか書いてみては如何ですか?
「for文を使う」というのも正解の1つで合っていますよ.

配列の要素は下記のようになっています.
a[0][0]が1
a[0][1]が2
a[0][2]が3
a[1][0]が4
a[1][1]が5
a[1][2]が6
b[0][0]が1
b[0][1]が5
b[1][0]が5
b[1][1]が3
b[2][0]が8
b[2][1]が1


返信引用
Johnny
 Johnny
(@Johnny)
ゲスト
結合: 25年前
投稿: 12
 

int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2]={{1,5},{5,3},{8,1}};

のようにコマを入れると解決できると思う。


返信引用
ソリッド
 ソリッド
(@ソリッド)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

どうもソリッドです。
kuさん、Johnnyさん返信有り難う御座います。一用出来ました。多分・・・。
しかし、本とか見ながらやったんでなんか分かりきった気がしません。
特にfor文の所です。何故この配列の積が下のようなForの連続で出てくるのか
どうもしっくりきません。

int a[2][3]=
int b[2][3]=

などなら分かるんですが、問題のようなそれぞれの要素が同じでない時にどうゆ
う風にfor文を使うか分からなくなってしまいます。
 もし良かったら教えていただけないでしょうか?

#include <stdio.h>
int main(void)
{
int i, j, k;
int ma[2][3] = { {1, 2, 3}, {4, 5, 6} };
int mb[3][2] = { {1, 5}, {5, 3}, {8, 1} };
int mc[2][2] = { 0 };
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
for (k = 0; k < 3; k++)
mc[i][j] = ma[i][k] * mb[k][j];

for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++)
printf(%3d, mc[i][j]);
  putchar(\n);

}

return 0;
}


返信引用
Wow
 Wow
(@Wow)
ゲスト
結合: 24年前
投稿: 1
 

突然すいませんが、掲載してあるプログラム、11行目の=の左横に
+が抜けてますよ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました