「次に示す行列x,yの積を求めるプログラムを作成せよ。
x[2][3]={{1,2,3},{4,5,6}} y=[3][2]={{1,5},{5,3},{81}}」
という問題です。自分ではとりあえず、
#include<stdio.h>
int main(void)
{
int i,j;
int x[2][3]={{1,2,3},{4,5,6}};
int y[3][2]={{1,5},{5,3},{8,1}};
int xy[3][3]={0};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
xy[i][j]=x[i][j]*y[i][j];
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%3d",xy[i][j]);
putchar('\n');
}
return 0;
}
というプログラムを作ってみましたが、ダメでした。
ちゃんと積の表示が出るようにするにはどこをどう変えるべきでしょうか?
No.3ベストアンサー
- 回答日時:
#include<stdio.h>
int main(void)
{
int x[2][3] = { { 1, 2, 3 }, { 4, 5, 6} };
int y[3][2] = { { 1, 5 }, { 5, 3 }, { 8, 1 } };
int xy[2][2];
int i, j, k;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
xy[i][j] = 0;
for (k = 0; k < 3; k++) {
xy[i][j] += x[i][k] * y[k][j];
}
}
}
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
printf("%4d", xy[i][j]);
}
putchar('\n');
}
return 0;
}
ちゃんとできました!i=2,j=2にすれば良いのではないかとは思ったんですけど
そこからどうすればいいのか分かりませんでした。
なるほど、新しくkを作ってxy[i][j]+=にすればよかったんですね。
理屈も理解できました。どうもありがとうございます。
No.2
- 回答日時:
今のプログラムだと
for(i=0;i<3;i++)
for(j=0;j<3;j++)
xy[i][j]=x[i][j]*y[i][j];
で I-2, j=2 のとき、 x[i][j], y[i][j] はどうなるでしょう?
そして、行列の積をよく考えましょう。
xy[0][0] = x[0][0] * y[0][0] + x[0][1] * y[1][0] + ....
ですよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
複数桁10進数の*桁目だけを抽出...
-
C言語での引数の省略方法
-
C言語 エラーの原因がわからな...
-
足して100になるような乱数のア...
-
実数の整数部,小数部の取得
-
#define _CRT_SECURE_NO_WARNIN...
-
数字列を3桁ごとにカンマで区切...
-
c言語の配列を使ってサイコロを...
-
入力を待たずにstdinの監視をし...
-
構造体の勉強中です 合計点の高...
-
C#のコンパイルエラーCS0120に...
-
ColorをRGBで指定する方法
-
c言語の問題です 課題1 (二分探...
-
四捨五入方法
-
C言語の配列をC++のvectorに高...
-
C言語の関数で戻り値を返す必要...
-
Win32APIで作るコンボボックス...
-
配列v2を逆順にしてv1に格納す...
-
CStringの配列要素を関数で受け...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
(int *)の意味
-
実数の整数部,小数部の取得
-
acceptをalarmでタイムアウトさ...
-
C言語
-
std::set<int> で、ある値が何...
-
因数分解を行うプログラムについて
-
数字列を3桁ごとにカンマで区切...
-
(マルチスレッド)_beginthrea...
-
比較回数と交換回数表示について
-
式は定数値が必要です」という...
-
int型の変数値をバイト列として...
-
c言語の配列を使ってサイコロを...
おすすめ情報