こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

行列の和、積、乗算について(C言語)

まだC言語の勉強を始めて1か月の初心者なのですが、みなさんにお聞きしたいことがあります。

任意の行列に対して和、積、乗算の関数を作り出力するプログラムを
作りたいのですが、試しに和の関数を作ってビルトしてみたら、
31個もエラーが出て、困っています。

↓参考書を見ながら、自分なりに考えたプログラムです。

#include <stdio.h>

typedef struct matrix{
int m;
int n;
double data[100][100];
} MATRIX;


int main(void)
{
MATRIX a;
MATRIX b;

a.m=2;
a.n=3;
a.data[100][100]={{1,2,1},{2,3,3}};
b.m=2;
b.n=3;
b.data[100][100]={{2,3,1},{1,2,1}};

kekka=add_mat(MATRIX a,MATRIX b);
printf("和:%f,kekka.data);


//行列和関数
MATRIX add_mat(MATRIX a,MATRIX b){
MATRIX sum;
int i,j;
sum.m=a.m;
sum.n=a.n;
sum.data[100][100]={{0,0,0}{0,0,0}};
for(i=0;i<sum.m;i++){
for(j=0;j<sum.n;j++){
sum.data=(a.data)+(b.data);
return sum;
}
}
}

return 0;
}

おそらく相当ダメな感じなのでしょうが、エラー文を読んでも
なかなか解決できません。

ちなみに、積の関数は
mul_mat(MATRIX c,MATRIX a,MATRIX b){
int i,j,k;
for(i = 0; i < a.m; i++){
for(j = 0; j < b.n; j++){
for(k = 0; k < a.n; k++){
C[i][j] = C[i][j] + A[i][k] * B[k][j];
}
}
}

という風に考えました。みなさまのお力を借りたいです。
よろしくお願いします

投稿日時 - 2009-06-28 02:22:57

QNo.5080333

すぐに回答ほしいです

質問者が選んだベストアンサー

まず、関数の定義位置がおかしいです。

行列など考えずに、
まずは、和を行う関数、積を行う関数を作ってみることをお勧めします。

簡単なことからはじめたほうが理解も解析もしやすいですよ

投稿日時 - 2009-06-28 02:37:56

お礼

素早い返答・ご指摘ありがとうございます。
自分にもまだ早い内容だと思うのですが、個人的に出された課題で、
期限が迫っているので、何とかしたいという思いで投稿させていただきました。

もうすこし勉強してみます。

投稿日時 - 2009-06-28 03:58:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問