行列配列について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
がくせい

行列配列について

#1

投稿記事 by がくせい » 11年前

行列を転置したり演算したりするソースを作っているのですが,ちょくちょく結果を表示させながら作っていて,転置させるところでその表示結果がおかしくなってしまいました.
ソースとしてはまだ途中なのですが原因がどこにあるのか分からないのでのせさせていただきました.
よろしくお願いします.

コード:

#include<stdio.h>
#include<stdlib.h>

#define MAX 10

int tra_matrix(int mat[][MAX],int transmata[][MAX],int row,int col) /*行列の転置*/
{
        int i,j;

        for(i=0;i<row;i++){
                for(i=0;i<col;i++){
                        transmata[j][i]=mat[i][j];
                }
        }
}


int set_matrix(int mat[][MAX],int row,int col) /*行列の要素の入力*/
{
        int num=0;
        int i,j;

        for(i=0;i<row;i++){
                for(j=0;j<col;j++){
                        printf("mat[%d][%d]=",i,j);
                        scanf("%d",&mat[i][j]); num++;
                }
        }
        return num;
}


int add_matrix(int mata[][MAX],int matb[][MAX],int tmp[][MAX],int row,int col) /*行列の加算*/
{
        int i,j;

        for(i=0;i<row;i++){
                for(j=0;j<col;j++){
                        tmp[i][j]=mata[i][j]+matb[i][j];
                }
        }
}


void put_matrix(int mat[][MAX],int row,int col) /*行列の表示*/
{
        int i,j;
        for(i=0;i<row;i++){
                for(j=0;j<col;j++){
                        printf("mat[%d][%d]=%d ",i,j,mat[i][j]);
                }
                puts("");
        }
        return;
}
int main(void)
{
        int matrixa[MAX][MAX],matrixb[MAX][MAX],transmata[MAX][MAX],transmatb[MAX][MAX];
        int n,m;
        int count;
        int tmp[MAX][MAX];

        printf("matrix's size n:"); scanf("%d",&n);
        printf("              m:"); scanf("%d",&m);

        count=set_matrix(matrixa,n,m);
        if(count!=n*m) exit(EXIT_FAILURE);

        count=set_matrix(matrixb,n,m);
        if(count!=n*m) exit(EXIT_FAILURE);

        add_matrix(matrixa,matrixb,tmp,n,m);
        puts("A+B=");
        put_matrix(tmp,n,m);

        tra_matrix(matrixa,transmata,n,m);

        put_matrix(matrixa,n,m);
        put_matrix(transmata,m,n);
        return EXIT_SUCCESS;
}

がくせい

Re: 行列配列について

#2

投稿記事 by がくせい » 11年前

自決しました

non
記事: 1097
登録日時: 13年前

Re: 行列配列について

#3

投稿記事 by non » 11年前

死ぬなよ~
non

閉鎖

“C言語何でも質問掲示板” へ戻る