見た質問
ログイン 新規登録

お使いのブラウザ(Internet Explorer)では閲覧、ログイン、質問の作成や回答などに不具合が生じることがございます。
誠に恐れ入りますが、下記の推奨ブラウザをご利用くださいませ。

推奨ブラウザ:Google Chrome(グーグル・クローム)

質問:11001 2進法を10進法に変換したら答えは何になりますか?

りゅう りゅう 個人家庭教師の回答

16 + 8 + 1 = 25より、25...

正しく転置行列を求めるにはどうしたらいいのでしょうか?

C++で転置行列を求めるプログラムです。
このプログラムで開始すると
1 2 3
4 5 6
7 8 9
という行列を入力すると
1 2 3
2 5 6
3 6 9
という行列が表示されます。
正しく転置行列を求めるにはどうしたらいいのでしょうか?
教えてください。よろしくお願いします。

回答(2件)

ベストアンサーに選ばれました
学生

ごめん。

行列の転置がしたいなら、ループは行列の上三角だけ回さなければいけないことを忘れていた。

全部回したら2回転置して、元に戻ってしまう。


以下、参考にしてください。


------------------


void

swap_matrix(void)

{

int matlen = 3;


int i, j;

for (i = 0; i < matlen; i++)

{

for (j = 0; j < i; j++)

{

double d;

d = mat[j][i];

mat[j][i] = mat[i][j];

mat[i][j] = d;

}

}

}

  • 正しいプログラムになりました。詳しく教えてくださって本当にありがとうございました。

    6か月前
回答へコメントする
学生

入れ替えがしたいのなら、以下のようにしてはじめに書く方を一時変数に退避してください。

(ループの中)

----------

double d = matrix[j][i];

maxtrix[j][i] = maxtrix[i][j];

maxtrix[i][j] = d;



  • この通りにしたら、転置されずにそのまま

    1 2 3

    4 5 6

    7 8 9

    と表示されました。

    1 4 7

    2 5 8

    3 6 9

    と表示されるようにするにはどうしたらいいでしょうか?

    教えてください。

    よろしくお願いします。

    6か月前
回答へコメントする

この質問に関連した回答一覧

この質問に関連する文章

ウィンドウ(W) ツール(T) 拡張機能(X) ヘルフ テスト(S) 分析(N) プロジェクト(P) ビルド(B) デバッグ(D) 編集(E) 表示M ト ローカル Windows デバッガー▼| 2 SDebug x86 X (グローバルスコープ) 14 日/X 家 行列を転置する。 ***x**xxxxxxx*xzxxx/ x*********xx void transposeMatrix(vo id) { I/1.各行row に対して以下の処理を繰り返す。 for (int i 0; i< N: it+) { 7/ 1-1. 当該行の0~row-1番目までの各列colum (に対して以下の処理を繰り返す。 for (int j = 0: j くM: j++) { /1-1-1. 行列の row 行 colum列目の要素とcolurn 行row 列目の要素とを入替える。 matrixli]i] matrixlilil:

※質問に添付された画像から自動で抽出しているため、一部画像と異なるテキストが入っている場合があります