投票受付中の質問
ベストアンサーにふさわしい回答に投票してください。
- 投票すると
5枚プラスされます。
- ベストアンサーに選ばれた回答に、最初に投票していれば
10枚プラスされます。
-
- 残り時間:
- 21時間
-
- 投票数:
- 0票
C言語 配列について 問題 3×3行列を表す2つの3次元配列 mat1[3][3] = {{1,2,...
C言語 配列について
問題
3×3行列を表す2つの3次元配列
mat1[3][3] = {{1,2,3},{4,5,6},{4,3,1}}
mat2[3][3] = {{6,8,3},{5,3,2},{8,1,4}} をそれぞれプログラム中に宣言する。
3×3行列の積 mat1・mat2の解を別の3次元配列mat[3][3]に格納し、出力するプログラムを作成せよ。
<実行例>
40 17 19
97 53 46
47 42 22
この実行例になるよう、プログラムを組むことができません。
配列をよく理解できていないです。
プログラムと意味を詳しく教えて頂けると助かります。
よろしくお願います。
-
- 質問日時:
- 2012/6/9 15:18:15
-
- 残り時間:
- 21時間
-
- 投票開始:
- 2012/6/17 03:19:43
-
- 投票数:
- 0
-
- 回答数:
- 2
-
- 閲覧数:
- 92
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
回答
(2件中1〜2件)
- 並べ替え:回答日時の
- 新しい順
- |
- 古い順
定義通りに計算するだけです!
#include <stdio.h>
main(){
int mat1[3][3]={{1,2,3},{4,5,6},{4,3,1}};
int mat2[3][3] = {{6,8,3},{5,3,2},{8,1,4}};
int mat[3][3],i,j; /* i : 行, j : 列 */
for(i=0;i<3;i++)
for(j=0;j<3;j++){
/* mat[i][j] の計算 */
mat[i][j]=mat1[i][0]*mat2[0][j]+mat1[i][1]*mat2[1][j]+mat1[i][2]*mat2[2][j];
/* mat[i][j] の値の出力 */
printf("%2d%c",mat[i][j],(j==2)?'\n':' ');
}
}
- 違反報告
- 回答日時:2012/6/9 18:59:37
k032yfさん
naoki672001さん
int main()
{
int mat1[3][3] = {{1,2,3},{4,5,6},{4,3,1}};
int mat2[3][3] = {{6,8,3},{5,3,2},{8,1,4}};
int mat[3][3];
int i,j,k,*p,*r,*t;
t=&mat[0][0];
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
r=&mat1[i][0];
p=&mat2[0][j];
*t=0;
for(k=0;k<3;++k)
{
*t +=*p**r++;
p+=3;
}
++t;
}
}
p=&mat[0][0];
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
printf("%4d",*p++);
}
printf("\n");
}
return 0;
}
- 違反報告
- 回答日時:2012/6/9 17:02:05